home *** CD-ROM | disk | FTP | other *** search
/ The PC-SIG Library 10 / The PC-Sig Library - Shareware for the IBM PC and Compatibles (PC-SIG)(Tenth Edition Disks 1-2804)(1991).iso / PC_SIGCD / 03 / 5 / DISK0352.ZIP / FORTH-H.ASM < prev    next >
Assembly Source File  |  1987-01-28  |  57KB  |  4,835 lines

  1. PAGE 60,96
  2. TITLE 'MVPFORTH VERSION 1.0305.02 -10 AUG 82'
  3. ;
  4. ;      MVPFORTH KERNEL VERSION 1.0305.02
  5. ;
  6. ;      A FORTH OPERATING SYSSTEM
  7. ;
  8. ;      FORTH THE IBM PERSONAL COMPUTER
  9. ;
  10. ;
  11. ;        PREPARED FOR
  12. ;
  13. ;     MOUNTAIN VIEW PRESS, INC.
  14. ;           PO BOX 4656
  15. ;     MOUNTAIN VIEW, CA 94040
  16. ;
  17. ;         IMPLEMENTATION BY
  18. ;
  19. ;        HAYDON ENTERPRISES
  20. ;          BOX 429 ROUTE 2
  21. ;        LA HONDA, CA 94020
  22. ;
  23. ;
  24. ;THIS PUBLICATION IS PLACED IN THE PUBLIC
  25. ;DOMAIN.  PERMISSION TO DISTRIBUTE IS GRANTED
  26. ;BY THE INCLUSION OF CREDIT TO MOUNTAIN VIEW
  27. ;PRESS, INC., AND HAYDON ENTERPRISES.
  28. ;
  29. ;
  30. ;THIS IMPLEMENTATION INCLUDES THE ENTIRE
  31. ;FORTH-79 REQUIRED WORD SET.  THE BOOK
  32. ;"ALL ABOUT FORTH"  BY GLEN B. HAYDON FULLY
  33. ;DOCUMENTS MVPFORTH. IT IS AVAILABLE FROM
  34. ;MOUNTAIN VIEW PRESS, INC.
  35. ;
  36. ;THE IMPLEMENTATION HAS BEEN TRANSCRIBED FROM
  37. ;THE ORIGINAL CROSS COMPILER VER. 1.0000.02 .
  38. ;IT WILL ASSEMBLE WITH "MASM.COM" UNDER MDOS
  39. ;VER. 1.0 OR 1.1 .
  40. ;
  41. ;BECAUSE OF THE TYPE-AHEAD BUFFER OF THE IBM,
  42. ;?TERMINAL HAS A SLIGHTLY DIFFERENT FUNCTION
  43. ;FROM STANDARD MVPFORTH.  THE TRUE FLAG IS
  44. ;THE ASCII VALUE OF THE KEY STRUCK (THE FALSE
  45. ;FLAG REMAINS 0).  BY USING  ?DUP  BEFORE
  46. ;TESTING, THE VALUE OF THE STRUCK KEY WILL BE
  47. ;LEFT ON THE STACK.  THUS IT IS NOT NECESSARY
  48. ;TO CLEAR THE STATUS FLAG WITH THE SEQUENCE
  49. ; - KEY DROP .
  50. PAGE
  51. ;
  52. ;THE FORTH REGISTERS ARE ASSIGNED ACCORDING
  53. ;TO FIG-FORTH FOR THE 8086/88, VERSION 1.0,
  54. ;AS IMPLEMENTED BY THOMAS NEWMAN, 27444
  55. ;BERENDA WAY, HAYWARD, CA 94544, AND MADE
  56. ;AVAILABLE BY THE FORTH INTEREST GROUP,
  57. ;BOX 1105, SAN CARLOS, CA 94070.
  58. ;
  59. ;FORTH REGISTERS
  60. ;
  61. ;FORTH    8088  FORTH PRESERVATION RULES
  62. ;
  63. ; IP     SI   INTERPRETER POINTER.
  64. ;          MUST BE PRESERVED
  65. ;          ACROSS FORTH WORDS.
  66. ;
  67. ; W     DX   WORKING REGISTER.
  68. ;          JUMP TO 'DPUSH' WILL
  69. ;          PUSH CONTENTS ONTO THE
  70. ;          PARAMETER STACK BEFORE
  71. ;          EXECUTING 'APUSH'.
  72. ;
  73. ; SP     SP   PARAMETER STACK POINTER.
  74. ;          MUST BE PRESERVED ACROSS
  75. ;          FORTH WORDS.  THIS IS ALSO
  76. ;          THE SYSTEM STACK, WHICH
  77. ;          IS SOMETIMES CALLED THE
  78. ;          HARDWARE STACK  -HS .
  79. ;
  80. ; RP     BP   RETURN STACK POINTER.
  81. ;          MUST BE PRESERVED ACROSS
  82. ;          FORTH WORDS.
  83. ;
  84. ;
  85. ;IN ADDITION, THE 8088 CODE SEGMENT, DATA
  86. ;SEGMENT AND STACK SEGMENT REGISTERS ( CS,
  87. ;DS, AND SS, MUST BE PRESERVED ACROSS
  88. ;FORTH WORDS.
  89. ;
  90. ;THE OTHER REGISTERS OF THE 8088 CPU MAY
  91. ;BE USED FREELY.
  92. ;
  93. ;10 AUGUST 1982
  94. PAGE
  95. ;
  96. ;    EQUATES:
  97. ;
  98. ABL    EQU    20H
  99. ACR    EQU    0DH
  100. AMINUS    EQU    2DH
  101. ADOT    EQU    2EH
  102. BELL    EQU    07H
  103. ALF    EQU    0AH
  104. FFEED    EQU    0CH
  105. ADEL    EQU    7FH
  106. ADLE    EQU    10H
  107. BSOUT    EQU    08H
  108. BSIN    EQU    08H
  109. ;
  110. ;
  111. ;
  112. BPS    EQU    80H
  113. EM    EQU    6000H
  114. HDBT    EQU    404H
  115. NBUF    EQU    02H
  116. BUF1    EQU    EM-HDBT*NBUF
  117. US    EQU    52H
  118. INITR0    EQU    BUF1-US
  119. RTS    EQU    0A0H
  120. INITSP0 EQU    INITR0-RTS
  121. ;
  122. STACK    SEGMENT     PARA STACK
  123.     DB    200H  DUP( 0 )
  124. STACK    ENDS
  125. ;
  126. FSEG    SEGMENT     COMMON
  127.     ASSUME        CS:FSEG,SS:STACK,DS:FSEG,ES:FSEG
  128. PAGE
  129. ;
  130.     ORG    100H
  131. ;
  132. ORIG:    MOV    AX,CS
  133.     MOV    DS,AX
  134.     MOV    SS,AX
  135.     MOV    ES,AX
  136.     MOV    SI,TCOLD
  137.     MOV    SP,INITUSER
  138.     MOV    BP,RPP
  139.     JMP    NEXT
  140. TCOLD    DW    TCOLD1
  141. TCOLD1    DW    COLD
  142. ;
  143. ;
  144. INITFORTH    DW    RBRAC-4
  145. INITUSER    DW    INITSP0
  146. ;
  147.     DW    INITR0
  148.     DW    INITSP0
  149.     DW    01FH
  150.     DW    01H
  151. ;
  152. ;
  153. INITFENCE    DW    RBRAC-4
  154. INITDP        DW    RBRAC+0CH
  155. INITVOCLINK    DW    FORTH+6
  156. ;
  157. ;
  158.     DW    ADFIND
  159.     DW    AQTERM
  160.     DW    AABORT
  161.     DW    ABLOCK
  162.     DW    ACRA
  163.     DW    AEMIT
  164.     DW    AEXPECT
  165.     DW    AINTER
  166.     DW    AKEY
  167.     DW    ALOAD
  168.     DW    ANUM
  169.     DW    APAGE
  170.     DW    ARSLW
  171.     DW    ATSCALC
  172.     DW    AV79
  173.     DW    AWORD
  174. UP    DW    INITR0
  175. RPP    DW    INITR0
  176. ;
  177. ;
  178. ;
  179. PAGE
  180. ;
  181. ;
  182. ;
  183. DPUSH:    PUSH    DX
  184. APUSH:    PUSH    AX
  185. NEXT:    MOV    AX,[SI]
  186.     INC    SI
  187.     INC    SI
  188.     MOV    BX,AX
  189. NEXT1:    MOV    DX,BX
  190.     INC    DX
  191.     JMP    WORD PTR [BX]
  192. ;
  193. ;
  194. ;
  195. DP0    DB    81H    ;  STORE
  196.     DB    '!'+80H
  197.     DW    0
  198. STORE    DW    $+2
  199.     POP    BX
  200.     POP    AX
  201.     MOV    [BX],AX
  202.     JMP    NEXT
  203. ;
  204.     DB    82H        ;  STOREL
  205.     DB    '!'
  206.     DB    'L'+80H
  207.     DW    STORE-4
  208. STOREL    DW    $+2
  209.     POP    BX
  210.     POP    DS
  211.     POP    AX
  212.     MOV    [BX],AX
  213.     MOV    BX,CS
  214.     MOV    DS,BX
  215.     JMP    NEXT
  216. ;
  217.     DB    81H    ;  #
  218.     DB    '#'+80H
  219.     DW    STOREL-5
  220. DIG    DW    DOCOL
  221.     DW    BASE
  222.     DW    ATT
  223.     DW    MSMOD
  224.     DW    ROT
  225.     DW    LIT
  226.     DW    9
  227.     DW    OVER
  228.     DW    LESS
  229.     DW    ZBRAN
  230.     DW    OFFSET DIG1-$
  231.     DW    LIT
  232.     DW    7
  233.     DW    PLUS
  234. DIG1    DW    LIT
  235.     DW    30H
  236.     DW    PLUS
  237.     DW    HOLD
  238.     DW    EXIT
  239. ;
  240.     DB    82H    ;  #>
  241.     DB    '#'
  242.     DB    '>'+80H
  243.     DW    DIG-4
  244. EDIGS    DW    DOCOL
  245.     DW    DDROP
  246.     DW    HLD
  247.     DW    ATT
  248.     DW    PAD
  249.     DW    OVER
  250.     DW    SUBB
  251.     DW    EXIT
  252. ;
  253.     DB    85H    ;  #BUFF
  254.     DB    '#BUF'
  255.     DB    'F'+80H
  256.     DW    EDIGS-5
  257. NOBUF    DW    DOCON
  258.     DW    NBUF
  259. ;
  260.     DB    82H    ;  #S
  261.     DB    '#'
  262.     DB    'S'+80H
  263.     DW    NOBUF-8
  264. DIGS    DW    DOCOL
  265. DIGS1    DW    DIG
  266.     DW    DDUP
  267.     DW    ORR
  268.     DW    NOTT
  269.     DW    ZBRAN
  270.     DW    OFFSET DIGS1-$
  271.     DW    EXIT
  272. ;
  273.     DB    0C1H    ;  '
  274.     DB    0A7H
  275.     DW    DIGS-5
  276. TICK    DW    DOCOL
  277.     DW    DFIND
  278.     DW    NOTT
  279.     DW    AABORTQ
  280.     DB    09H
  281.     DB    'NOT FOUND'
  282.     DW    DROP
  283.     DW    LITER
  284.     DW    EXIT
  285. ;
  286.     DB    86H    ;  '-FIND
  287.     DB    27H,'-FIN'
  288.     DB    'D'+80H
  289.     DW    TICK-4
  290. TDFIND    DW    DOUSE
  291.     DW    16H
  292. ;
  293.     DB    8AH    ;  '?TERMINAL
  294.     DB    27H,'?TERMINA'
  295.     DB    'L'+80H
  296.     DW    TDFIND-9
  297. TQTERM    DW    DOUSE
  298.     DW    18H
  299. ;
  300.     DB    86H    ;  'ABORT
  301.     DB    27H,'ABOR'
  302.     DB    'T'+80H
  303.     DW    TQTERM-0DH
  304. TABORT    DW    DOUSE
  305.     DW    1AH
  306. ;
  307.     DB    86H    ;  'BLOCK
  308.     DB    27H,'BLOC'
  309.     DB    'K'+80H
  310.     DW    TABORT-9
  311. TBLOCK    DW    DOUSE
  312.     DW    1CH
  313. ;
  314.     DB    83H    ;  'CR
  315.     DB    27H,'C'
  316.     DB    'R'+80H
  317.     DW    TBLOCK-9
  318. TCR    DW    DOUSE
  319.     DW    1EH
  320. ;
  321.     DB    85H    ;  'EMIT
  322.     DB    27H,'EMI'
  323.     DB    'T'+80H
  324.     DW    TCR-6
  325. TEMIT    DW    DOUSE
  326.     DW    20H
  327. ;
  328.     DB    87H    ;  'EXPECT
  329.     DB    27H,'EXPEC'
  330.     DB    'T'+80H
  331.     DW    TEMIT-8
  332. TEXPECT DW    DOUSE
  333.     DW    22H
  334. ;
  335.     DB    8AH    ;  'INTERPRET
  336.     DB    27H,'INTERPRE'
  337.     DB    'T'+80H
  338.     DW    TEXPECT-0AH
  339. TINTER    DW    DOUSE
  340.     DW    24H
  341. ;
  342.     DB    84H    ;  'KEY
  343.     DB    27H,'KE'
  344.     DB    'Y'+80H
  345.     DW    TINTER-0DH
  346. TKEY    DW    DOUSE
  347.     DW    26H
  348. ;
  349.     DB    85H    ;  'LOAD
  350.     DB    27H,'LOA'
  351.     DB    'D'+80H
  352.     DW    TKEY-7
  353. TLOAD    DW    DOUSE
  354.     DW    28H
  355. ;
  356.     DB    87H    ;  'NUMBER
  357.     DB    27H,'NUMBE'
  358.     DB    'R'+80H
  359.     DW    TLOAD-8
  360. TNUM    DW    DOUSE
  361.     DW    2AH
  362. ;
  363.     DB    85H    ;  'PAGE
  364.     DB    27H,'PAG'
  365.     DB    'E'+80H
  366.     DW    TNUM-0AH
  367. TPAGE    DW    DOUSE
  368.     DW    2CH
  369. ;
  370.     DB    84H    ;  'R/W
  371.     DB    27H,'R/'
  372.     DB    'W'+80H
  373.     DW    TPAGE-8
  374. TRSLW    DW    DOUSE
  375.     DW    2EH
  376. ;
  377.     DB    87H    ;  'STREAM
  378.     DB    27H,'STREA'
  379.     DB    'M'+80H
  380.     DW    TRSLW-7
  381. TSTREAM DW    DOCOL
  382.     DW    BLK
  383.     DW    ATT
  384.     DW    QDUP
  385.     DW    ZBRAN
  386.     DW    TSTRM1-$
  387.     DW    BLOCK
  388.     DW    BRAN
  389.     DW    TSTRM2-$
  390. TSTRM1    DW    TIB
  391.     DW    ATT
  392. TSTRM2    DW    TOIN
  393.     DW    ATT
  394.     DW    PLUS
  395.     DW    EXIT
  396. ;
  397.     DB    88H    ;  'T&SCALC
  398.     DB    27H,'T&SCAL'
  399.     DB    'C'+80H
  400.     DW    TSTREAM-0AH
  401. TTSCALC DW    DOUSE
  402.     DW    30H
  403. ;
  404.     DB    8BH    ;  'VOCABULARY
  405.     DB    27H,'VOCABULAR'
  406.     DB    'Y'+80H
  407.     DW    TTSCALC-0BH
  408. TVOCAB    DW    DOUSE
  409.     DW    32H
  410. ;
  411.     DB    85H    ;  'WORD
  412.     DB    27H,'WOR'
  413.     DB    'D'+80H
  414.     DW    TVOCAB-0EH
  415. TWORD    DW    DOUSE
  416.     DW    34H
  417. ;
  418.     DB    0C1H    ;  (
  419.     DB    '('+80H
  420.     DW    TWORD-8
  421. PAREN    DW    DOCOL
  422.     DW    LIT
  423.     DW    0FFFFH
  424.     DW    TOIN
  425.     DW    PSTOR
  426.     DW    LIT
  427.     DW    29H
  428.     DW    WORDD
  429.     DW    CAT
  430.     DW    ONEP
  431.     DW    HERE
  432.     DW    PLUS
  433.     DW    CAT
  434.     DW    LIT
  435.     DW    29H
  436.     DW    EQUAL
  437.     DW    NOTT
  438.     DW    QSTREAM
  439.     DW    EXIT
  440. ;
  441.     DB    81H    ;  *
  442.     DB    '*'+80H
  443.     DW    PAREN-4
  444. STAR    DW    DOCOL
  445.     DW    USTAR
  446.     DW    DROP
  447.     DW    EXIT
  448. ;
  449.     DB    82H    ;  */
  450.     DB    '*'
  451.     DB    '/'+80H
  452.     DW    STAR-4
  453. SSLA    DW    DOCOL
  454.     DW    SSMOD
  455.     DW    SWAP
  456.     DW    DROP
  457.     DW    EXIT
  458. ;
  459.     DB    85H    ;  */MOD
  460.     DB    '*/MO'
  461.     DB    'D'+80H
  462.     DW    SSLA-5
  463. SSMOD    DW    DOCOL
  464.     DW    TOR
  465.     DW    MSTAR
  466.     DW    FROMR
  467.     DW    MSLAS
  468.     DW    EXIT
  469. ;
  470.     DB    81H    ;  +
  471.     DB    '+'+80H
  472.     DW    SSMOD-8
  473. PLUS    DW    $+2
  474.     POP    AX
  475.     POP    BX
  476.     ADD    AX,BX
  477.     JMP    APUSH
  478. ;
  479.     DB    82H    ;  +STORE
  480.     DB    '+'
  481.     DB    '!'+80H
  482.     DW    PLUS-4
  483. PSTOR    DW    $+2
  484.     POP    BX
  485.     POP    AX
  486.     ADD    [BX],AX
  487.     JMP    NEXT
  488. ;
  489.     DB    82H    ;  +-
  490.     DB    '+'
  491.     DB    '-'+80H
  492.     DW    PSTOR-5
  493. PM    DW    DOCOL
  494.     DW    ZLESS
  495.     DW    ZBRAN
  496.     DW    OFFSET PM1-$
  497.     DW    NEG
  498. PM1    DW    EXIT
  499. ;
  500.     DB    84H    ;  +BUF
  501.     DB    '+BU'
  502.     DB    'F'+80H
  503.     DW    PM-5
  504. PBUF    DW    DOCOL
  505.     DW    LIT
  506.     DW    HDBT
  507.     DW    PLUS
  508.     DW    DUPP
  509.     DW    LIMIT
  510.     DW    EQUAL
  511.     DW    ZBRAN
  512.     DW    OFFSET PBUF1-$
  513.     DW    DROP
  514.     DW    FIRST
  515. PBUF1    DW    DUPP
  516.     DW    PREV
  517.     DW    ATT
  518.     DW    SUBB
  519.     DW    EXIT
  520. ;
  521.     DB    0C5H    ;  +LOOP
  522.     DB    '+LOO'
  523.     DB    'P'+80H
  524.     DW    PBUF-7
  525. PLOOP    DW    DOCOL
  526.     DW    LIT
  527.     DW    3
  528.     DW    QPAIR
  529.     DW    COMP
  530.     DW    APLOOP
  531.     DW    HERE
  532.     DW    SUBB
  533.     DW    COMMA
  534.     DW    EXIT
  535. ;
  536.     DB    81H    ;  ,
  537.     DB    ','+80H
  538.     DW    PLOOP-8
  539. COMMA    DW    DOCOL
  540.     DW    HERE
  541.     DW    STORE
  542.     DW    TWO
  543.     DW    ALLOT
  544.     DW    EXIT
  545. ;
  546.     DB    81H    ;  -
  547.     DB    '-'+80H
  548.     DW    COMMA-4
  549. SUBB    DW    $+2
  550.     POP    DX
  551.     POP    AX
  552.     SUB    AX,DX
  553.     JMP    APUSH
  554. ;
  555.     DB    85H    ;  -FIND
  556.     DB    '-FIN'
  557.     DB    'D'+80H
  558.     DW    SUBB-4
  559. DFIND    DW    DOCOL
  560.     DW    TDFIND
  561.     DW    ATT
  562.     DW    EXEC
  563.     DW    EXIT
  564. ;
  565.     DB    89H    ;  -TRAILING
  566.     DB    '-TRAILIN'
  567.     DB    'G'+80H
  568.     DW    DFIND-8
  569. DTRAI    DW    DOCOL
  570.     DW    DUPP
  571.     DW    ZERO
  572.     DW    ADO
  573. DTRAI1    DW    DDUP
  574.     DW    PLUS
  575.     DW    ONEM
  576.     DW    CAT
  577.     DW    BLL
  578.     DW    SUBB
  579.     DW    ZBRAN
  580.     DW    OFFSET DTRAI2-$
  581.     DW    LEAVE
  582.     DW    BRAN
  583.     DW    OFFSET DTRAI3-$
  584. DTRAI2    DW    ONEM
  585. DTRAI3    DW    ALOOP
  586.     DW    OFFSET DTRAI1-$
  587.     DW    EXIT
  588. ;
  589.     DB    81H    ;  .
  590.     DB    '.'+80H
  591.     DW    DTRAI-0CH
  592. DOT    DW    DOCOL
  593.     DW    STOD
  594.     DW    DDOT
  595.     DW    EXIT
  596. ;
  597.     DB    0C2H    ;  ."
  598.     DB    '.'
  599.     DB    '"'+80H
  600.     DW    DOT-4
  601. DOTQ    DW    DOCOL
  602.     DW    TSTREAM
  603.     DW    CAT
  604.     DW    LIT
  605.     DW    22H
  606.     DW    EQUAL
  607.     DW    ZBRAN
  608.     DW    OFFSET DOTQ1-$
  609.     DW    ONE
  610.     DW    TOIN
  611.     DW    PSTOR
  612.     DW    BRAN
  613.     DW    OFFSET DOTQ2-$
  614. DOTQ1    DW    LIT
  615.     DW    22H
  616.     DW    STATE
  617.     DW    ATT
  618.     DW    ZBRAN
  619.     DW    OFFSET DOTQ3-$
  620.     DW    COMP
  621.     DW    ADOTQ
  622. DOTQ3    DW    WORDD
  623.     DW    DUPP
  624.     DW    CAT
  625.     DW    ONEP
  626.     DW    OVER
  627.     DW    PLUS
  628.     DW    CAT
  629.     DW    LIT
  630.     DW    22H
  631.     DW    EQUAL
  632.     DW    NOTT
  633.     DW    QSTREAM
  634.     DW    STATE
  635.     DW    ATT
  636.     DW    ZBRAN
  637.     DW    OFFSET DOTQ4-$
  638.     DW    CAT
  639.     DW    ONEP
  640.     DW    ALLOT
  641.     DW    BRAN
  642.     DW    OFFSET DOTQ2-$
  643. DOTQ4    DW    COUNT
  644.     DW    TYPEE
  645. DOTQ2    DW    EXIT
  646. ;
  647.     DB    85H    ;  .LINE
  648.     DB    '.LIN'
  649.     DB    'E'+80H
  650.     DW    DOTQ-5
  651. DLINE    DW    DOCOL
  652.     DW    ALINE
  653.     DW    DTRAI
  654.     DW    TYPEE
  655.     DW    EXIT
  656. ;
  657.     DB    82H    ;  .R
  658.     DB    '.'
  659.     DB    'R'+80H
  660.     DW    DLINE-8
  661. DOTR    DW    DOCOL
  662.     DW    TOR
  663.     DW    STOD
  664.     DW    FROMR
  665.     DW    DDOTR
  666.     DW    EXIT
  667. ;
  668.     DB    81H    ;  /
  669.     DB    '/'+80H
  670.     DW    DOTR-5
  671. SLASH    DW    DOCOL
  672.     DW    SLMOD
  673.     DW    SWAP
  674.     DW    DROP
  675.     DW    EXIT
  676. ;
  677.     DB    0C5H    ;  /LOOP
  678.     DB    '/LOO'
  679.     DB    'P'+80H
  680.     DW    SLASH-4
  681. UPLOOP    DW    DOCOL
  682.     DW    LIT
  683.     DW    3
  684.     DW    QPAIR
  685.     DW    COMP
  686.     DW    AUPLOOP
  687.     DW    HERE
  688.     DW    SUBB
  689.     DW    COMMA
  690.     DW    EXIT
  691. ;
  692.     DB    84H    ;  /MOD
  693.     DB    '/MO'
  694.     DB    'D'+80H
  695.     DW    UPLOOP-8
  696. SLMOD    DW    DOCOL
  697.     DW    TOR
  698.     DW    STOD
  699.     DW    FROMR
  700.     DW    MSLAS
  701.     DW    EXIT
  702. ;
  703.     DB    81H    ;  0
  704.     DB    '0'+80H
  705.     DW    SLMOD-7
  706. ZERO    DW    DOCON
  707.     DW    00
  708. ;
  709.     DB    82H    ;  0<
  710.     DB    '0'
  711.     DB    '<'+80H
  712.     DW    ZERO-4
  713. ZLESS    DW    $+2
  714.     POP    AX
  715.     OR    AX,AX
  716.     MOV    AX,1
  717.     JS    ZLES1
  718.     DEC    AX
  719. ZLES1:    JMP    APUSH
  720. ;
  721.     DB    82H    ;  0=
  722.     DB    '0'
  723.     DB    '='+80H
  724.     DW    ZLESS-5
  725. ZEQU    DW    DOCOL
  726.     DW    NOTT
  727.     DW    EXIT
  728. ;
  729.     DB    82H    ;  0>
  730.     DB    '0'
  731.     DB    '>'+80H
  732.     DW    ZEQU-5
  733. ZGREAT    DW    DOCOL
  734.     DW    ZERO
  735.     DW    GREAT
  736.     DW    EXIT
  737. ;
  738.     DB    87H    ;  0BRANCH
  739.     DB    '0BRANC'
  740.     DB    'H'+80H
  741.     DW    ZGREAT-5
  742. ZBRAN    DW    $+2
  743.     POP    AX
  744.     OR    AX,AX
  745.     JZ    ZBRAN1
  746.     INC    SI
  747.     INC    SI
  748.     JMP    NEXT
  749. ZBRAN1: JMP    BRAN1
  750. ;
  751.     DB    81H    ;  1
  752.     DB    '1'+80H
  753.     DW    ZBRAN-0AH
  754. ONE    DW    DOCON
  755.     DW    01
  756. ;
  757.     DB    82H    ;  1+
  758.     DB    '1'
  759.     DB    '+'+80H
  760.     DW    ONE-4
  761. ONEP    DW    $+2
  762.     POP    AX
  763.     INC    AX
  764.     JMP    APUSH
  765. ;
  766.     DB    82H    ;  1-
  767.     DB    '1'
  768.     DB    '-'+80H
  769.     DW    ONEP-5
  770. ONEM    DW    $+2
  771.     POP    AX
  772.     DEC    AX
  773.     JMP    APUSH
  774. ;
  775.     DB    81H    ;  2
  776.     DB    '2'+80H
  777.     DW    ONEM-5
  778. TWO    DW    DOCON
  779.     DW    02
  780. ;
  781.     DB    82H    ;  2*
  782.     DB    '2'
  783.     DB    '*'+80H
  784.     DW    TWO-4
  785. TWOST    DW    $+2
  786.     POP    AX
  787.     ADD    AX,AX
  788.     JMP    APUSH
  789. ;
  790.     DB    82H    ;    2+
  791.     DB    '2'
  792.     DB    '+'+80H
  793.     DW    TWOST-5
  794. TWOP    DW    $+2
  795.     POP    AX
  796.     INC    AX
  797.     INC    AX
  798.     JMP    APUSH
  799. ;
  800.     DB    82H    ;  2-
  801.     DB    '2'
  802.     DB    '-'+80H
  803.     DW    TWOP-5
  804. TWOM    DW    $+2
  805.     POP    AX
  806.     DEC    AX
  807.     DEC    AX
  808.     JMP    APUSH
  809. ;
  810.     DB    82H    ;  2/
  811.     DB    '2'
  812.     DB    '/'+80H
  813.     DW    TWOM-5
  814. TWOSL    DW    DOCOL
  815.     DW    TWO
  816.     DW    SLASH
  817.     DW    EXIT
  818. ;
  819.     DB    8BH    ;  79-STANDARD
  820.     DB    '79-STANDAR'
  821.     DB    'D'+80H
  822.     DW    TWOSL-5
  823. STAND    DW    DOCOL
  824.     DW    EXIT
  825. ;
  826.     DB    81H    ;  :
  827.     DB    ':'+80H
  828.     DW    STAND-0EH
  829. COLON    DW    DOCOL
  830.     DW    SPAT
  831.     DW    CSP
  832.     DW    STORE
  833.     DW    CURR
  834.     DW    ATT
  835.     DW    CONT
  836.     DW    STORE
  837.     DW    CREATE
  838.     DW    SMUDG
  839.     DW    RBRAC
  840.     DW    ASCODE
  841. DOCOL:    INC    DX
  842.     DEC    BP
  843.     DEC    BP
  844.     MOV    [BP],SI
  845.     MOV    SI,DX
  846.     JMP    NEXT
  847. ;
  848.     DB    0C1H    ;  ;
  849.     DB    ';'+80H
  850.     DW    COLON-4
  851. SEMI    DW    DOCOL
  852.     DW    QCSP
  853.     DW    COMP
  854.     DW    EXIT
  855.     DW    SMUDG
  856.     DW    LBRAC
  857.     DW    EXIT
  858. ;
  859.     DB    81H    ;  <
  860.     DB    '<'+80H
  861.     DW    SEMI-4
  862. LESS    DW    $+2
  863.     POP    DX
  864.     POP    AX
  865.     MOV    BX,DX
  866.     XOR    BX,AX
  867.     JS    LES1
  868.     SUB    AX,DX
  869. LES1:    OR    AX,AX
  870.     MOV    AX,0
  871.     JNS    LES2
  872.     INC    AX
  873. LES2:    JMP    APUSH
  874. ;
  875.     DB    82H    ;  <#
  876.     DB    '<'
  877.     DB    '#'+80H
  878.     DW    LESS-4
  879. BDIGS    DW    DOCOL
  880.     DW    PAD
  881.     DW    HLD
  882.     DW    STORE
  883.     DW    EXIT
  884. ;
  885.     DB    87H    ;  <+LOOP>
  886.     DB    '<+LOOP'
  887.     DB    '>'+80H
  888.     DW    BDIGS-5
  889. APLOOP    DW    $+2
  890.     POP    BX
  891.     JMP    ALOOP1
  892. ;
  893.     DB    87H    ;  <-FIND>
  894.     DB    '<-FIND'
  895.     DB    '>'+80H
  896.     DW    APLOOP-0AH
  897. ADFIND    DW    DOCOL
  898.     DW    BLL
  899.     DW    WORDD
  900.     DW    CONT
  901.     DW    ATT
  902.     DW    ATT
  903.     DW    AFIND
  904.     DW    EXIT
  905. ;
  906.     DB    84H    ;  <.">
  907.     DB    '<."'
  908.     DB    '>'+80H
  909.     DW    ADFIND-0AH
  910. ADOTQ    DW    DOCOL
  911.     DW    RAT
  912.     DW    COUNT
  913.     DW    DUPP
  914.     DW    ONEP
  915.     DW    FROMR
  916.     DW    PLUS
  917.     DW    TOR
  918.     DW    TYPEE
  919.     DW    EXIT
  920. ;
  921.     DB    87H    ;  </LOOP>
  922.     DB    '</LOOP'
  923.     DB    '>'+80H
  924.     DW    ADOTQ-7
  925. AUPLOOP DW    $+2
  926.     POP    BX
  927.     ADD    [BP],BX
  928.     JB    AUPLO1
  929.     MOV    AX,[BP]
  930.     SUB    AX,2[BP]
  931.     JNB    AUPLO1
  932.     JMP    BRAN1
  933. AUPLO1: ADD    BP,4H
  934.     INC    SI
  935.     INC    SI
  936.     JMP    NEXT
  937. ;
  938.     DB    87H    ;  <;CODE>
  939.     DB    '<;CODE'
  940.     DB    '>'+80H
  941.     DW    AUPLOOP-0AH
  942. ASCODE    DW    DOCOL
  943.     DW    FROMR
  944.     DW    LATES
  945.     DW    PFA
  946.     DW    CFA
  947.     DW    STORE
  948.     DW    EXIT
  949. ;
  950.     DB    88H    ;  <<CMOVE>
  951.     DB    '<<CMOVE'
  952.     DB    '>'+80H
  953.     DW    ASCODE-0AH
  954. ADCMOVE DW    $+2
  955.     STD
  956.     MOV    BX,SI
  957.     POP    CX
  958.     POP    DI
  959.     ADD    DI,CX
  960.     POP    SI
  961.     ADD    SI,CX
  962.     MOV    AX,DS
  963.     MOV    ES,AX
  964. REP    MOVSB
  965.     MOV    SI,BX
  966.     JMP    NEXT
  967. ;
  968.     DB    8BH        ;  <?TERMINAL>     ( ---    C , F )
  969.     DB    '<?TERMINAL'
  970.     DB    '>'+80H
  971.     DW    ADCMOVE-0BH
  972. AQTERM    DW    $+2
  973.     PUSH    DS
  974.     PUSH    BX
  975.     MOV    BX,40H
  976.     MOV    DS,BX
  977.     MOV    BX,1AH
  978.     MOV    CX,[BX]
  979.     MOV    AX,CX
  980.     MOV    BX,1CH
  981.     SUB    AX,[BX]
  982.     MOV    [BX],CX
  983.     JZ    AQTER1
  984.     MOV    AX,[BX]
  985.     MOV    BX,AX
  986.     MOV    AX,[BX]
  987.     SUB    AH,AH
  988. AQTER1: POP    BX
  989.     POP    DS
  990.     JMP    APUSH
  991. ;
  992.     DB    88H    ;  <ABORT">
  993.     DB    '<ABORT"'
  994.     DB    '>'+80H
  995.     DW    AQTERM-0EH
  996. AABORTQ DW    DOCOL
  997.     DW    ZBRAN
  998.     DW    AABTQ1-$
  999.     DW    WHERE
  1000.     DW    CR
  1001.     DW    RAT
  1002.     DW    COUNT
  1003.     DW    TYPEE
  1004.     DW    SPSTO
  1005.     DW    QUIT
  1006.     DW    BRAN
  1007.     DW    AABTQ2-$
  1008. AABTQ1    DW    FROMR
  1009.     DW    DUPP
  1010.     DW    CAT
  1011.     DW    PLUS
  1012.     DW    ONEP
  1013.     DW    TOR
  1014. AABTQ2    DW    EXIT
  1015. ;
  1016.     DB    87H    ;  <ABORT>
  1017.     DB    '<ABORT'
  1018.     DB    '>'+80H
  1019.     DW    AABORTQ-0BH
  1020. AABORT    DW    DOCOL
  1021.     DW    SPSTO
  1022.     DW    QSTAC
  1023.     DW    FORTH
  1024.     DW    DEFIN
  1025.     DW    QUIT
  1026.     DW    EXIT
  1027. ;
  1028.     DB    87H    ;  <BLOCK>
  1029.     DB    '<BLOCK'
  1030.     DB    '>'+80H
  1031.     DW    AABORT-0AH
  1032. ABLOCK    DW    DOCOL
  1033.     DW    OFSET
  1034.     DW    ATT
  1035.     DW    PLUS
  1036.     DW    TOR
  1037.     DW    PREV
  1038.     DW    ATT
  1039.     DW    DUPP
  1040.     DW    ATT
  1041.     DW    RAT
  1042.     DW    SUBB
  1043.     DW    TWOST
  1044.     DW    ZBRAN
  1045.     DW    OFFSET ABLOCK3-$
  1046. ABLOCK1 DW    PBUF
  1047.     DW    NOTT
  1048.     DW    ZBRAN
  1049.     DW    OFFSET ABLOCK2-$
  1050.     DW    DROP
  1051.     DW    RAT
  1052.     DW    BUFFE
  1053.     DW    DUPP
  1054.     DW    RAT
  1055.     DW    ONE
  1056.     DW    RSLW
  1057.     DW    TWOM
  1058. ABLOCK2 DW    DUPP
  1059.     DW    ATT
  1060.     DW    RAT
  1061.     DW    SUBB
  1062.     DW    TWOST
  1063.     DW    NOTT
  1064.     DW    ZBRAN
  1065.     DW    OFFSET ABLOCK1-$
  1066.     DW    DUPP
  1067.     DW    PREV
  1068.     DW    STORE
  1069. ABLOCK3 DW    FROMR
  1070.     DW    DROP
  1071.     DW    TWOP
  1072.     DW    EXIT
  1073. ;
  1074.     DB    86H    ;  <CMOVE
  1075.     DB    '<CMOV'
  1076.     DB    'E'+80H
  1077.     DW    ABLOCK-0AH
  1078. DCMOVE    DW    DOCOL
  1079.     DW    DUPP
  1080.     DW    ONE
  1081.     DW    LESS
  1082.     DW    ZBRAN
  1083.     DW    DCMOVE1-$
  1084.     DW    DDROP
  1085.     DW    DROP
  1086.     DW    BRAN
  1087.     DW    DCMOVE2-$
  1088. DCMOVE1 DW    ADCMOVE
  1089. DCMOVE2 DW    EXIT
  1090. ;
  1091.     DB    87H    ;  <CMOVE>
  1092.     DB    '<CMOVE'
  1093.     DB    '>'+80H
  1094.     DW    DCMOVE-09
  1095. ACMOVE    DW    $+2
  1096.     CLD
  1097.     MOV    BX,SI
  1098.     POP    CX
  1099.     POP    DI
  1100.     POP    SI
  1101.     MOV    AX,DS
  1102.     MOV    ES,AX
  1103. REP    MOVSB
  1104.     MOV    SI,BX
  1105.     JMP    NEXT
  1106. ;
  1107.     DB    84H    ;  <CR>
  1108.     DB    '<CR'
  1109.     DB    '>'+80H
  1110.     DW    ACMOVE-0AH
  1111. ACRA    DW    DOCOL
  1112.     DW    LIT
  1113.     DW    0DH
  1114.     DW    EMIT
  1115.     DW    LIT
  1116.     DW    0AH
  1117.     DW    EMIT
  1118.     DW    ZERO
  1119.     DW    OUTT
  1120.     DW    STORE
  1121.     DW    EXIT
  1122. ;
  1123.     DB    84H    ;  <DO>
  1124.     DB    '<DO'
  1125.     DB    '>'+80H
  1126.     DW    ACRA-7
  1127. ADO    DW    $+2
  1128.     POP    DX
  1129.     POP    AX
  1130.     XCHG    BP,SP
  1131.     PUSH    AX
  1132.     PUSH    DX
  1133.     XCHG    BP,SP
  1134.     JMP    NEXT
  1135. ;
  1136.     DB    86H    ;  <EMIT>
  1137.     DB    '<EMIT'
  1138.     DB    '>'+80H
  1139.     DW    ADO-7
  1140. AEMIT    DW    DOCOL
  1141.     DW    EPRINT
  1142.     DW    ATT
  1143.     DW    ZBRAN
  1144.     DW    OFFSET AEMIT1-$
  1145.     DW    DUPP
  1146.     DW    ZERO
  1147.     DW    ZERO
  1148.     DW    ZERO
  1149.     DW    LIT
  1150.     DW    17H
  1151.     DW    INTCAL
  1152.     DW    DROP
  1153. AEMIT1    DW    LIT
  1154.     DW    0E00H
  1155.     DW    PLUS
  1156.     DW    LIT
  1157.     DW    07H
  1158.     DW    ZERO
  1159.     DW    ZERO
  1160.     DW    LIT
  1161.     DW    10H
  1162.     DW    INTCAL
  1163.     DW    DROP
  1164.     DW    ONE
  1165.     DW    OUTT
  1166.     DW    PSTOR
  1167.     DW    EXIT
  1168. ;
  1169.     DB    88H    ;  <EXPECT>
  1170.     DB    '<EXPECT'
  1171.     DB    '>'+80H
  1172.     DW    AEMIT-9
  1173. AEXPECT DW    DOCOL
  1174.     DW    OVER
  1175.     DW    PLUS
  1176.     DW    OVER
  1177.     DW    ADO
  1178. AEXPEC1 DW    KEY
  1179.     DW    DUPP
  1180.     DW    LIT
  1181.     DW    8
  1182.     DW    EQUAL
  1183.     DW    OVER
  1184.     DW    LIT
  1185.     DW    7FH
  1186.     DW    EQUAL
  1187.     DW    ORR
  1188.     DW    ZBRAN
  1189.     DW    OFFSET AEXPEC4-$
  1190.     DW    DROP
  1191.     DW    DUPP
  1192.     DW    IDO
  1193.     DW    EQUAL
  1194.     DW    DUPP
  1195.     DW    FROMR
  1196.     DW    TWOM
  1197.     DW    PLUS
  1198.     DW    TOR
  1199.     DW    ZBRAN
  1200.     DW    OFFSET AEXPEC2-$
  1201.     DW    LIT
  1202.     DW    7
  1203.     DW    BRAN
  1204.     DW    OFFSET AEXPEC3-$
  1205. AEXPEC2 DW    LIT
  1206.     DW    8
  1207.     DW    DUPP
  1208.     DW    EMIT
  1209.     DW    LIT
  1210.     DW    20H
  1211.     DW    EMIT
  1212.     DW    LIT
  1213.     DW    0FFFDH
  1214.     DW    OUTT
  1215.     DW    PSTOR
  1216. AEXPEC3 DW    BRAN
  1217.     DW    OFFSET AEXPEC7-$
  1218. AEXPEC4 DW    DUPP
  1219.     DW    LIT
  1220.     DW    0DH
  1221.     DW    EQUAL
  1222.     DW    ZBRAN
  1223.     DW    OFFSET AEXPEC5-$
  1224.     DW    LEAVE
  1225.     DW    DROP
  1226.     DW    BLL
  1227.     DW    ZERO
  1228.     DW    BRAN
  1229.     DW    OFFSET AEXPEC6-$
  1230. AEXPEC5 DW    DUPP
  1231. AEXPEC6 DW    IDO
  1232.     DW    CSTOR
  1233.     DW    ZERO
  1234.     DW    IDO
  1235.     DW    ONEP
  1236.     DW    STORE
  1237. AEXPEC7 DW    EMIT
  1238.     DW    ONE
  1239.     DW    AUPLOOP
  1240.     DW    OFFSET AEXPEC1-$
  1241.     DW    DROP
  1242.     DW    EXIT
  1243. ;
  1244.     DB    86H    ;  <FILL>
  1245.     DB    '<FILL'
  1246.     DB    '>'+80H
  1247.     DW    AEXPECT-0BH
  1248. AFILL    DW    $+2
  1249.     POP    AX
  1250.     POP    CX
  1251.     POP    DI
  1252.     MOV    BX,DS
  1253.     MOV    ES,BX
  1254.     CLD
  1255.     REP    STOSB
  1256.     JMP    NEXT
  1257. ;
  1258.     DB    86H    ;  <FIND>
  1259.     DB    '<FIND'
  1260.     DB    '>'+80H
  1261.     DW    AFILL-9
  1262. AFIND    DW    $+2
  1263.     MOV    AX,DS
  1264.     MOV    ES,AX
  1265.     POP    BX
  1266.     POP    CX
  1267. AFIND1: MOV    DI,CX
  1268.     MOV    AL,[BX]
  1269.     MOV    DL,AL
  1270.     XOR    AL,[DI]
  1271.     AND    AL,3FH
  1272.     JNZ    AFIND3
  1273. AFIND2: INC    BX
  1274.     INC    DI
  1275.     MOV    AL,[BX]
  1276.     XOR    AL,[DI]
  1277.     ADD    AL,AL
  1278.     JNZ    AFIND3
  1279.     JNB    AFIND2
  1280.     ADD    BX,5
  1281.     PUSH    BX
  1282.     MOV    AX,1
  1283.     SUB    DH,DH
  1284.     JMP    DPUSH
  1285. AFIND3: INC    BX
  1286.     JB    AFIND4
  1287.     MOV    AL,[BX]
  1288.     ADD    AL,AL
  1289.     JMP    AFIND3
  1290. AFIND4: MOV    BX,[BX]
  1291.     OR    BX,BX
  1292.     JNZ    AFIND1
  1293.     MOV    AX,0
  1294.     JMP    APUSH
  1295. ;
  1296.     DB    8BH    ;  <INTERPRET>
  1297.     DB    '<INTERPRET'
  1298.     DB    '>'+80H
  1299.     DW    AFIND-9
  1300. AINTER    DW    DOCOL
  1301. AINTER1 DW    DFIND
  1302.     DW    ZBRAN
  1303.     DW    OFFSET AINTER4-$
  1304.     DW    STATE
  1305.     DW    ATT
  1306.     DW    LESS
  1307.     DW    ZBRAN
  1308.     DW    OFFSET AINTER2-$
  1309.     DW    CFA
  1310.     DW    COMMA
  1311.     DW    BRAN
  1312.     DW    OFFSET AINTER3-$
  1313. AINTER2 DW    CFA
  1314.     DW    EXEC
  1315. AINTER3 DW    BRAN
  1316.     DW    OFFSET AINTER6-$
  1317. AINTER4 DW    HERE
  1318.     DW    NUM
  1319.     DW    DPL
  1320.     DW    ATT
  1321.     DW    ONEP
  1322.     DW    ZBRAN
  1323.     DW    OFFSET AINTER5-$
  1324.     DW    DLITE
  1325.     DW    BRAN
  1326.     DW    OFFSET AINTER6-$
  1327. AINTER5 DW    DROP
  1328.     DW    LITER
  1329. AINTER6 DW    QSTAC
  1330.     DW    BRAN
  1331.     DW    OFFSET AINTER1-$
  1332.     DW    EXIT
  1333. ;
  1334.     DB    85H    ;  <KEY>
  1335.     DB    '<KEY'
  1336.     DB    '>'+80H
  1337.     DW    AINTER-0EH
  1338. AKEY    DW    DOCOL
  1339. AKEY1    DW    ZERO
  1340.     DW    ZERO
  1341.     DW    ZERO
  1342.     DW    ZERO
  1343.     DW    LIT
  1344.     DW    16H
  1345.     DW    INTCAL
  1346.     DW    LIT
  1347.     DW    0FFH
  1348.     DW    ANDD
  1349.     DW    DUPP
  1350.     DW    LIT
  1351.     DW    10H
  1352.     DW    SUBB
  1353.     DW    NOTT
  1354.     DW    ZBRAN
  1355.     DW    OFFSET AKEY2-$
  1356.     DW    DROP
  1357.     DW    ONE
  1358.     DW    EPRINT
  1359.     DW    ATT
  1360.     DW    XORR
  1361.     DW    EPRINT
  1362.     DW    STORE
  1363.     DW    BRAN
  1364.     DW    OFFSET AKEY1-$
  1365. AKEY2    DW    EXIT
  1366. ;
  1367.     DB    86H    ;  <LINE>
  1368.     DB    '<LINE'
  1369.     DB    '>'+80H
  1370.     DW    AKEY-8
  1371. ALINE    DW    DOCOL
  1372.     DW    BLOCK
  1373.     DW    SWAP
  1374.     DW    CSLL
  1375.     DW    STAR
  1376.     DW    PLUS
  1377.     DW    CSLL
  1378.     DW    EXIT
  1379. ;
  1380.     DB    86H    ;  <LOAD>
  1381.     DB    '<LOAD'
  1382.     DB    '>'+80H
  1383.     DW    ALINE-9
  1384. ALOAD    DW    DOCOL
  1385.     DW    QDUP
  1386.     DW    NOTT
  1387.     DW    AABORTQ
  1388.     DB    0AH
  1389.     DB    'UNLOADABLE'
  1390.     DW    BLK
  1391.     DW    ATT
  1392.     DW    TOR
  1393.     DW    TOIN
  1394.     DW    ATT
  1395.     DW    TOR
  1396.     DW    ZERO
  1397.     DW    TOIN
  1398.     DW    STORE
  1399.     DW    BLK
  1400.     DW    STORE
  1401.     DW    INTER
  1402.     DW    FROMR
  1403.     DW    TOIN
  1404.     DW    STORE
  1405.     DW    FROMR
  1406.     DW    BLK
  1407.     DW    STORE
  1408.     DW    EXIT
  1409. ;
  1410.     DB    86H    ;  <LOOP>
  1411.     DB    '<LOOP'
  1412.     DB    '>'+80H
  1413.     DW    ALOAD-9
  1414. ALOOP    DW    $+2
  1415.     MOV    BX,1H
  1416. ALOOP1: MOV    CX,[BP]
  1417.     ADD    [BP],BX
  1418.     JS    ALOOP2
  1419.     MOV    AX,CX
  1420.     AND    AX,BX
  1421.     JNS    ALOOP3
  1422. ALOOP2: MOV    AX,CX
  1423.     OR    AX,BX
  1424.     JNS    ALOOP8
  1425. ALOOP3: MOV    AX,[BP]
  1426.     SUB    AX,2[BP]
  1427.     JS    ALOOP7
  1428.     MOV    AX,[BP]
  1429.     AND    AX,AX
  1430.     JS    ALOOP5
  1431. ALOOP4: MOV    AX,BX
  1432.     AND    AX,AX
  1433.     JNS    ALOOP8
  1434.     JMP    BRAN1
  1435. ALOOP5: MOV    AX,2[BP]
  1436.     AND    AX,AX
  1437.     JS    ALOOP4
  1438. ALOOP6: MOV    AX,BX
  1439.     AND    AX,AX
  1440.     JS    ALOOP8
  1441.     JMP    BRAN1
  1442. ALOOP7: MOV    AX,[BP]
  1443.     AND    AX,AX
  1444.     JS    ALOOP6
  1445.     JMP    ALOOP5
  1446. ALOOP8: ADD    BP,4H
  1447.     INC    SI
  1448.     INC    SI
  1449.     JMP    NEXT
  1450. ;
  1451.     DB    88H    ;  <NUMBER>
  1452.     DB    '<NUMBER'
  1453.     DB    '>'+80H
  1454.     DW    ALOOP-9
  1455. ANUM    DW    DOCOL
  1456.     DW    ZERO
  1457.     DW    ZERO
  1458.     DW    ROT
  1459.     DW    DUPP
  1460.     DW    ONEP
  1461.     DW    CAT
  1462.     DW    LIT
  1463.     DW    2DH
  1464.     DW    EQUAL
  1465.     DW    DUPP
  1466.     DW    TOR
  1467.     DW    PLUS
  1468.     DW    LIT
  1469.     DW    0FFFFH
  1470.     DW    DPL
  1471.     DW    STORE
  1472.     DW    CONV
  1473.     DW    DUPP
  1474.     DW    CAT
  1475.     DW    BLL
  1476.     DW    GREAT
  1477.     DW    ZBRAN
  1478.     DW    OFFSET ANUM1-$
  1479.     DW    DUPP
  1480.     DW    CAT
  1481.     DW    LIT
  1482.     DW    2EH
  1483.     DW    EQUAL
  1484.     DW    NOTT
  1485.     DW    AABORTQ
  1486.     DB    0EH
  1487.     DB    'NOT RECOGNIZED'
  1488.     DW    ZERO
  1489.     DW    DPL
  1490.     DW    STORE
  1491.     DW    CONV
  1492.     DW    DUPP
  1493.     DW    CAT
  1494.     DW    BLL
  1495.     DW    GREAT
  1496.     DW    AABORTQ
  1497.     DB    0EH
  1498.     DB    'NOT RECOGNIZED'
  1499. ANUM1    DW    DROP
  1500.     DW    FROMR
  1501.     DW    ZBRAN
  1502.     DW    OFFSET ANUM2-$
  1503.     DW    DNEG
  1504. ANUM2    DW    EXIT
  1505. ;
  1506.     DB    86H    ;  <PAGE>
  1507.     DB    '<PAGE'
  1508.     DB    '>'+80H
  1509.     DW    ANUM-0BH
  1510. APAGE    DW    DOCOL
  1511.     DW    ZERO
  1512.     DW    ZERO
  1513.     DW    ZERO
  1514.     DW    ZERO
  1515.     DW    LIT
  1516.     DW    10H
  1517.     DW    INTCAL
  1518.     DW    DROP
  1519.     DW    EXIT
  1520. ;
  1521.     DB    85H    ;  <R/W>
  1522.     DB    '<R/W'
  1523.     DB    '>'+80H
  1524.     DW    APAGE-9
  1525. ARSLW    DW    DOCOL
  1526.     DW    USEE
  1527.     DW    ATT
  1528.     DW    TOR
  1529.     DW    ROT
  1530.     DW    USEE
  1531.     DW    STORE
  1532.     DW    SWAP
  1533.     DW    MAXDRV
  1534.     DW    ZERO
  1535.     DW    ADO
  1536. ARSLW1    DW    IDO
  1537.     DW    DRDEN
  1538.     DW    DENSTY
  1539.     DW    STORE
  1540.     DW    DUPP
  1541.     DW    BPDRV
  1542.     DW    SLMOD
  1543.     DW    ZBRAN
  1544.     DW    ARSLW3-$
  1545.     DW    DROP
  1546.     DW    BPDRV
  1547.     DW    SUBB
  1548.     DW    IDO
  1549.     DW    ONEP
  1550.     DW    MAXDRV
  1551.     DW    EQUAL
  1552.     DW    ZBRAN
  1553.     DW    ARSLW2-$
  1554.     DW    FROMR
  1555.     DW    FROMR
  1556.     DW    DDROP
  1557.     DW    FROMR
  1558.     DW    USEE
  1559.     DW    STORE
  1560.     DW    ONE
  1561.     DW    AABORTQ
  1562.     DB    12H
  1563.     DB    'BLOCK OUT OF RANGE'
  1564. ARSLW2    DW    BRAN
  1565.     DW    ARSLW4-$
  1566. ARSLW3    DW    IDO
  1567.     DW    DRIVE
  1568.     DW    STORE
  1569.     DW    LEAVE
  1570. ARSLW4    DW    ALOOP
  1571.     DW    ARSLW1-$
  1572.     DW    DROP
  1573.     DW    SPBLK
  1574.     DW    STAR
  1575.     DW    SPBLK
  1576.     DW    ZERO
  1577.     DW    ADO
  1578. ARSLW5    DW    DDUP
  1579.     DW    TSCALC
  1580.     DW    ZBRAN
  1581.     DW    ARSLW6-$
  1582.     DW    SECRD
  1583.     DW    BRAN
  1584.     DW    ARSLW7-$
  1585. ARSLW6    DW    SECWT
  1586. ARSLW7    DW    ONEP
  1587.     DW    LIT
  1588.     DW    404H
  1589.     DW    LIT
  1590.     DW    4
  1591.     DW    SUBB
  1592.     DW    SPBLK
  1593.     DW    SLASH
  1594.     DW    USEE
  1595.     DW    PSTOR
  1596.     DW    ALOOP
  1597.     DW    ARSLW5-$
  1598.     DW    DDROP
  1599.     DW    FROMR
  1600.     DW    USEE
  1601.     DW    STORE
  1602.     DW    EXIT
  1603. ;
  1604.     DB    89H    ;  <T&SCALC>
  1605.     DB    '<T&SCALC'
  1606.     DB    '>'+80H
  1607.     DW    ARSLW-8
  1608. ATSCALC DW    DOCOL
  1609.     DW    SPT
  1610.     DW    SLMOD
  1611.     DW    TRACK
  1612.     DW    STORE
  1613.     DW    ONEP
  1614.     DW    SEC
  1615.     DW    STORE
  1616.     DW    EXIT
  1617. ;
  1618.     DB    8EH    ;  <VOCABULARY79>
  1619.     DB    '<VOCABULARY79'
  1620.     DB    '>'+80H
  1621.     DW    ATSCALC-0CH
  1622. AV79    DW    DOCOL
  1623.     DW    CREATE
  1624.     DW    LIT
  1625.     DW    0A081H
  1626.     DW    COMMA
  1627.     DW    LIT
  1628.     DW    FORTH+2
  1629.     DW    COMMA
  1630.     DW    HERE
  1631.     DW    VOCL
  1632.     DW    ATT
  1633.     DW    COMMA
  1634.     DW    VOCL
  1635.     DW    STORE
  1636.     DW    ASCODE
  1637. DOVOC    DB    0E8H
  1638.     DW    DODOES-$-2
  1639.     DW    TWOP
  1640.     DW    CONT
  1641.     DW    STORE
  1642.     DW    EXIT
  1643. ;
  1644.     DB    8FH    ;  <VOCABULARYFIG>
  1645.     DB    '<VOCABULARYFIG'
  1646.     DB    '>'+80H
  1647.     DW    AV79-11H
  1648. AVFIG    DW    DOCOL
  1649.     DW    CREATE
  1650.     DW    LIT
  1651.     DW    0A081H
  1652.     DW    COMMA
  1653.     DW    CURR
  1654.     DW    ATT
  1655.     DW    CFA
  1656.     DW    COMMA
  1657.     DW    HERE
  1658.     DW    VOCL
  1659.     DW    ATT
  1660.     DW    COMMA
  1661.     DW    VOCL
  1662.     DW    STORE
  1663.     DW    ASCODE
  1664.     DB    0E8H
  1665.     DW    DODOES-$-2
  1666.     DW    TWOP
  1667.     DW    CONT
  1668.     DW    STORE
  1669.     DW    EXIT
  1670. ;
  1671.     DB    86H    ;  <WORD>
  1672.     DB    '<WORD'
  1673.     DB    '>'+80H
  1674.     DW    AVFIG-12H
  1675. AWORD    DW    DOCOL
  1676.     DW    TSTREAM
  1677.     DW    SWAP
  1678.     DW    ENCL
  1679.     DW    DDUP
  1680.     DW    GREAT
  1681.     DW    ZBRAN
  1682.     DW    OFFSET AWORD1-$
  1683.     DW    DDROP
  1684.     DW    DDROP
  1685.     DW    ZERO
  1686.     DW    HERE
  1687.     DW    STORE
  1688.     DW    BRAN
  1689.     DW    OFFSET AWORD2-$
  1690. AWORD1    DW    TOIN
  1691.     DW    PSTOR
  1692.     DW    OVER
  1693.     DW    SUBB
  1694.     DW    DUPP
  1695.     DW    TOR
  1696.     DW    HERE
  1697.     DW    CSTOR
  1698.     DW    PLUS
  1699.     DW    HERE
  1700.     DW    ONEP
  1701.     DW    FROMR
  1702.     DW    DUPP
  1703.     DW    LIT
  1704.     DW    0FFH
  1705.     DW    GREAT
  1706.     DW    AABORTQ
  1707.     DB    0BH
  1708.     DB    'INPUT > 255'
  1709.     DW    ONEP
  1710.     DW    CMOVE
  1711. AWORD2    DW    HERE
  1712.     DW    EXIT
  1713. ;
  1714.     DB    81H        ;  =
  1715.     DB    '='+80H
  1716.     DW    AWORD-9
  1717. EQUAL    DW    DOCOL
  1718.     DW    SUBB
  1719.     DW    NOTT
  1720.     DW    EXIT
  1721. ;
  1722.     DB    81H        ;  >
  1723.     DB    '>'+80H
  1724.     DW    EQUAL-4
  1725. GREAT    DW    DOCOL
  1726.     DW    SWAP
  1727.     DW    LESS
  1728.     DW    EXIT
  1729. ;
  1730.     DB    83H        ;  >IN
  1731.     DB    '>I'
  1732.     DB    'N'+80H
  1733.     DW    GREAT-4
  1734. TOIN    DW    DOUSE
  1735.     DW    36H
  1736. ;
  1737.     DB    82H        ;  >R
  1738.     DB    '>'
  1739.     DB    'R'+80H
  1740.     DW    TOIN-6
  1741. TOR    DW    $+2
  1742.     POP    BX
  1743.     DEC    BP
  1744.     DEC    BP
  1745.     MOV    [BP],BX
  1746.     JMP    NEXT
  1747. ;
  1748.     DB    81H        ;  ?
  1749.     DB    '?'+80H
  1750.     DW    TOR-5
  1751. QUES    DW    DOCOL
  1752.     DW    ATT
  1753.     DW    DOT
  1754.     DW    EXIT
  1755. ;
  1756.     DB    85H        ;  ?COMP
  1757.     DB    '?COM'
  1758.     DB    'P'+80H
  1759.     DW    QUES-4
  1760. QCOMP    DW    DOCOL
  1761.     DW    STATE
  1762.     DW    ATT
  1763.     DW    NOTT
  1764.     DW    AABORTQ
  1765.     DB    0CH
  1766.     DB    'COMPILE ONLY'
  1767.     DW    EXIT
  1768. ;
  1769.     DB    8AH        ;  ?CONFIGURE
  1770.     DB    '?CONFIGUR'
  1771.     DB    'E'+80H
  1772.     DW    QCOMP-8
  1773. QCONF    DW    DOCOL
  1774.     DW    CR
  1775.     DW    CR
  1776.     DW    MAXDRV
  1777.     DW    DOT
  1778.     DW    ADOTQ
  1779.     DB    16H
  1780.     DB    'DRIVES WITH DENSITIES:'
  1781.     DW    MAXDRV
  1782.     DW    ZERO
  1783.     DW    ADO
  1784. QCONF1    DW    IDO
  1785.     DW    DRDEN
  1786.     DW    TWO
  1787.     DW    SPACS
  1788.     DW    DOT
  1789.     DW    ALOOP
  1790.     DW    QCONF1-$
  1791.     DW    CR
  1792.     DW    CR
  1793.     DW    ADOTQ
  1794.     DB    0CH
  1795.     DB    'DENSITY CODE'
  1796.     DW    CR
  1797.     DW    ADOTQ
  1798.     DB    0AH
  1799.     DB    '0 - 5-SSSD'
  1800.     DW    CR
  1801.     DW    ADOTQ
  1802.     DB    0AH
  1803.     DB    '1 - 8-SSSD'
  1804.     DW    CR
  1805.     DW    ADOTQ
  1806.     DB    0AH
  1807.     DB    '2 - 8-DSSD'
  1808.     DW    CR
  1809.     DW    ADOTQ
  1810.     DB    0AH
  1811.     DB    '3 - 8-SSDD'
  1812.     DW    CR
  1813.     DW    ADOTQ
  1814.     DB    0AH
  1815.     DB    '4 - 8-DSDD'
  1816.     DW    CR
  1817.     DW    ADOTQ
  1818.     DB    0BH
  1819.     DB    '5 - 8-SSEXT'
  1820.     DW    CR
  1821.     DW    ADOTQ
  1822.     DB    0BH
  1823.     DB    '6 - 8-DSEXT'
  1824.     DW    CR
  1825.     DW    EXIT
  1826. ;
  1827.     DB    84H        ;  ?CSP
  1828.     DB    '?CS'
  1829.     DB    'P'+80H
  1830.     DW    QCONF-0DH
  1831. QCSP    DW    DOCOL
  1832.     DW    SPAT
  1833.     DW    CSP
  1834.     DW    ATT
  1835.     DW    SUBB
  1836.     DW    AABORTQ
  1837.     DB    17H
  1838.     DB    'DEFINITION NOT FINISHED'
  1839.     DW    EXIT
  1840. ;
  1841.     DB    84H        ;  ?DUP
  1842.     DB    '?DU'
  1843.     DB    'P'+80H
  1844.     DW    QCSP-7
  1845. QDUP    DW    DOCOL
  1846.     DW    DUPP
  1847.     DW    ZBRAN
  1848.     DW    QDUP1-$
  1849.     DW    DUPP
  1850. QDUP1    DW    EXIT
  1851. ;
  1852.     DB    88H        ;  ?LOADING
  1853.     DB    '?LOADIN'
  1854.     DB    'G'+80H
  1855.     DW    QDUP-7
  1856. QLOAD    DW    DOCOL
  1857.     DW    BLK
  1858.     DW    ATT
  1859.     DW    NOTT
  1860.     DW    AABORTQ
  1861.     DB    0CH
  1862.     DB    'LOADING ONLY'
  1863.     DW    EXIT
  1864. ;
  1865.     DB    86H        ;  ?PAIRS
  1866.     DB    '?PAIR'
  1867.     DB    'S'+80H
  1868.     DW    QLOAD-0BH
  1869. QPAIR    DW    DOCOL
  1870.     DW    SUBB
  1871.     DW    AABORTQ
  1872.     DB    17H
  1873.     DB    'CONDITIONALS NOT PAIRED'
  1874.     DW    EXIT
  1875. ;
  1876.     DB    86H        ;  ?STACK
  1877.     DB    '?STAC'
  1878.     DB    'K'+80H
  1879.     DW    QPAIR-9
  1880. QSTAC    DW    DOCOL
  1881.     DW    SPAT
  1882.     DW    SZERO
  1883.     DW    SWAP
  1884.     DW    ULESS
  1885.     DW    AABORTQ
  1886.     DB    0BH
  1887.     DB    'EMPTY STACK'
  1888.     DW    SPAT
  1889.     DW    HERE
  1890.     DW    LIT
  1891.     DW    80H
  1892.     DW    PLUS
  1893.     DW    ULESS
  1894.     DW    AABORTQ
  1895.     DB    0AH
  1896.     DB    'FULL STACK'
  1897.     DW    EXIT
  1898. ;
  1899.     DB    87H        ;  ?STREAM
  1900.     DB    '?STREA'
  1901.     DB    'M'+80H
  1902.     DW    QSTAC-9
  1903. QSTREAM DW    DOCOL
  1904.     DW    AABORTQ
  1905.     DB    16H
  1906.     DB    'INPUT STREAM EXHAUSTED'
  1907.     DW    EXIT
  1908. ;
  1909.     DB    89H        ;  ?TERMINAL
  1910.     DB    '?TERMINA'
  1911.     DB    'L'+80H
  1912.     DW    QSTREAM-0AH
  1913. QTERM    DW    DOCOL
  1914.     DW    TQTERM
  1915.     DW    ATT
  1916.     DW    EXEC
  1917.     DW    EXIT
  1918. ;
  1919.     DB    81H        ;  @
  1920.     DB    '@'+80H
  1921.     DW    QTERM-0CH
  1922. ATT    DW    $+2
  1923.     POP    BX
  1924.     MOV    AX,[BX]
  1925.     JMP    APUSH
  1926. ;
  1927.     DB    82H        ;  @L
  1928.     DB    '@'
  1929.     DB    'L'+80H
  1930.     DW    ATT-4
  1931. ATL    DW    $+2
  1932.     POP    BX
  1933.     POP    DS
  1934.     MOV    AX,[BX]
  1935.     MOV    BX,CS
  1936.     MOV    DS,BX
  1937.     JMP    APUSH
  1938. ;
  1939.     DB    85H        ;  ABORT
  1940.     DB    'ABOR'
  1941.     DB    'T'+80H
  1942.     DW    ATL-5
  1943. ABORT    DW    DOCOL
  1944.     DW    TABORT
  1945.     DW    ATT
  1946.     DW    EXEC
  1947.     DW    EXIT
  1948. ;
  1949.     DB    0C6H        ;  ABORT"
  1950.     DB    'ABORT'
  1951.     DB    '"'+80H
  1952.     DW    ABORT-8
  1953. ABORTQ    DW    DOCOL
  1954.     DW    QCOMP
  1955.     DW    COMP
  1956.     DW    AABORTQ
  1957.     DW    TSTREAM
  1958.     DW    CAT
  1959.     DW    LIT
  1960.     DW    22H
  1961.     DW    EQUAL
  1962.     DW    ZBRAN
  1963.     DW    ABORTQ1-$
  1964.     DW    ONE
  1965.     DW    TOIN
  1966.     DW    PSTOR
  1967.     DW    ZERO
  1968.     DW    CCOMM
  1969.     DW    BRAN
  1970.     DW    ABORTQ2-$
  1971. ABORTQ1 DW    LIT
  1972.     DW    22H
  1973.     DW    WORDD
  1974.     DW    DUPP
  1975.     DW    CAT
  1976.     DW    ONEP
  1977.     DW    SWAP
  1978.     DW    OVER
  1979.     DW    PLUS
  1980.     DW    CAT
  1981.     DW    LIT
  1982.     DW    22H
  1983.     DW    EQUAL
  1984.     DW    NOTT
  1985.     DW    QSTREAM
  1986.     DW    ALLOT
  1987. ABORTQ2 DW    EXIT
  1988. ;
  1989.     DB    83H        ;  ABS
  1990.     DB    'AB'
  1991.     DB    'S'+80H
  1992.     DW    ABORTQ-9
  1993. ABSS    DW    DOCOL
  1994.     DW    DUPP
  1995.     DW    PM
  1996.     DW    EXIT
  1997. ;
  1998.     DB    0C5H        ;  AGAIN
  1999.     DB    'AGAI'
  2000.     DB    'N'+80H
  2001.     DW    ABSS-6
  2002. AGAIN    DW    DOCOL
  2003.     DW    ONE
  2004.     DW    QPAIR
  2005.     DW    COMP
  2006.     DW    BRAN
  2007.     DW    HERE
  2008.     DW    SUBB
  2009.     DW    COMMA
  2010.     DW    EXIT
  2011. ;
  2012.     DB    85H        ;  ALLOT
  2013.     DB    'ALLO'
  2014.     DB    'T'+80H
  2015.     DW    AGAIN-8
  2016. ALLOT    DW    DOCOL
  2017.     DW    DP
  2018.     DW    PSTOR
  2019.     DW    EXIT
  2020. ;
  2021.     DB    83H        ;  AND
  2022.     DB    'AN'
  2023.     DB    'D'+80H
  2024.     DW    ALLOT-8
  2025. ANDD    DW    $+2
  2026.     POP    BX
  2027.     POP    AX
  2028.     AND    AX,BX
  2029.     JMP    APUSH
  2030. ;
  2031.     DB    85H        ;  APUSH
  2032.     DB    'APUS'
  2033.     DB    'H'+80H
  2034.     DW    ANDD-6
  2035. APUSHH    DW    DOCON
  2036.     DW    APUSH
  2037. ;
  2038.     DB    84H        ;  BASE
  2039.     DB    'BAS'
  2040.     DB    'E'+80H
  2041.     DW    APUSHH-8
  2042. BASE    DW    DOUSE
  2043.     DW    38H
  2044. ;
  2045.     DB    0C5H        ;  BEGIN
  2046.     DB    'BEGI'
  2047.     DB    'N'+80H
  2048.     DW    BASE-7
  2049. BEGIN    DW    DOCOL
  2050.     DW    QCOMP
  2051.     DW    HERE
  2052.     DW    ONE
  2053.     DW    EXIT
  2054. ;
  2055.     DB    82H        ;  BL
  2056.     DB    'B'
  2057.     DB    'L'+80H
  2058.     DW    BEGIN-8
  2059. BLL    DW    DOCON
  2060.     DW    20H
  2061. ;
  2062.     DB    85H        ;  BLANK
  2063.     DB    'BLAN'
  2064.     DB    'K'+80H
  2065.     DW    BLL-5
  2066. BLANK    DW    DOCOL
  2067.     DW    BLL
  2068.     DW    FILL
  2069.     DW    EXIT
  2070. ;
  2071.     DB    83H        ;  BLK
  2072.     DB    'BL'
  2073.     DB    'K'+80H
  2074.     DW    BLANK-8
  2075. BLK    DW    DOUSE
  2076.     DW    3AH
  2077. ;
  2078.     DB    87H        ;  BLK/DRV
  2079.     DB    'BLK/DR'
  2080.     DB    'V'+80H
  2081.     DW    BLK-6
  2082. BPDR    DW    DOVAR
  2083.     DW    0A0H
  2084.     DW    0FAH
  2085.     DW    1F4H
  2086.     DW    1F4H
  2087.     DW    3E8H
  2088.     DW    268H
  2089.     DW    4D0H
  2090. ;
  2091.     DB    85H        ;  BLOCK
  2092.     DB    'BLOC'
  2093.     DB    'K'+80H
  2094.     DW    BPDR-0AH
  2095. BLOCK    DW    DOCOL
  2096.     DW    TBLOCK
  2097.     DW    ATT
  2098.     DW    EXEC
  2099.     DW    EXIT
  2100. ;
  2101.     DB    85H        ;  BPDRV
  2102.     DB    'BPDR'
  2103.     DB    'V'+80H
  2104.     DW    BLOCK-8
  2105. BPDRV    DW    DOCOL
  2106.     DW    DENSTY
  2107.     DW    ATT
  2108.     DW    LIT
  2109.     DW    6H
  2110.     DW    MIN
  2111.     DW    TWOST
  2112.     DW    BPDR
  2113.     DW    PLUS
  2114.     DW    ATT
  2115.     DW    EXIT
  2116. ;
  2117.     DB    86H        ;  BRANCH
  2118.     DB    'BRANC'
  2119.     DB    'H'+80H
  2120.     DW    BPDRV-8
  2121. BRAN    DW    $+2
  2122. BRAN1:    ADD    SI,[SI]
  2123.     JMP    NEXT
  2124. ;
  2125.     DB    86H        ;  BUFFER
  2126.     DB    'BUFFE'
  2127.     DB    'R'+80H
  2128.     DW    BRAN-9
  2129. BUFFE    DW    DOCOL
  2130.     DW    USEE
  2131.     DW    ATT
  2132.     DW    DUPP
  2133.     DW    TOR
  2134. BUFF1    DW    PBUF
  2135.     DW    ZBRAN
  2136.     DW    OFFSET BUFF1-$
  2137.     DW    USEE
  2138.     DW    STORE
  2139.     DW    RAT
  2140.     DW    ATT
  2141.     DW    ZLESS
  2142.     DW    ZBRAN
  2143.     DW    OFFSET BUFF2-$
  2144.     DW    RAT
  2145.     DW    TWOP
  2146.     DW    RAT
  2147.     DW    ATT
  2148.     DW    LIT
  2149.     DW    7FFFH
  2150.     DW    ANDD
  2151.     DW    ZERO
  2152.     DW    RSLW
  2153. BUFF2    DW    RAT
  2154.     DW    STORE
  2155.     DW    RAT
  2156.     DW    PREV
  2157.     DW    STORE
  2158.     DW    FROMR
  2159.     DW    TWOP
  2160.     DW    EXIT
  2161. ;
  2162.     DB    83H        ;  BYE
  2163.     DB    'BY'
  2164.     DB    'E'+80H
  2165.     DW    BUFFE-9
  2166. BYE    DW    DOCOL
  2167.     DW    FREEZE
  2168.     DW    ZERO
  2169.     DW    ZERO
  2170.     DW    SYSCALL
  2171.     DW    EXIT
  2172. ;
  2173.     DB    82H        ;  CSTORE
  2174.     DB    'C'
  2175.     DB    '!'+80H
  2176.     DW    BYE-6
  2177. CSTOR    DW    $+2
  2178.     POP    BX
  2179.     POP    AX
  2180.     MOV    [BX],AL
  2181.     JMP    NEXT
  2182. ;
  2183.     DB    83H        ;  CSTOREL
  2184.     DB    'C!'
  2185.     DB    'L'+80H
  2186.     DW    CSTOR-5
  2187. CSTORL    DW    $+2
  2188.     POP    BX
  2189.     POP    DS
  2190.     POP    AX
  2191.     MOV    [BX],AL
  2192.     MOV    BX,CS
  2193.     MOV    DS,BX
  2194.     JMP    NEXT
  2195. ;
  2196.     DB    82H        ;  C,
  2197.     DB    'C'
  2198.     DB    ','+80H
  2199.     DW    CSTORL-6
  2200. CCOMM    DW    DOCOL
  2201.     DW    HERE
  2202.     DW    CSTOR
  2203.     DW    ONE
  2204.     DW    ALLOT
  2205.     DW    EXIT
  2206. ;
  2207.     DB    83H        ;  C/L
  2208.     DB    'C/'
  2209.     DB    'L'+80H
  2210.     DW    CCOMM-5
  2211. CSLL    DW    DOCON
  2212.     DW    40H
  2213. ;
  2214.     DB    82H        ;  C@
  2215.     DB    'C'
  2216.     DB    '@'+80H
  2217.     DW    CSLL-6
  2218. CAT    DW    $+2
  2219.     POP    BX
  2220.     MOV    AL,[BX]
  2221.     SUB    AH,AH
  2222.     JMP    APUSH
  2223. ;
  2224.     DB    83H        ;  C@L
  2225.     DB    'C@'
  2226.     DB    'L'+80H
  2227.     DW    CAT-5
  2228. CATL    DW    $+2
  2229.     POP    BX
  2230.     POP    DS
  2231.     MOV    AL,[BX]
  2232.     SUB    AH,AH
  2233.     MOV    BX,CS
  2234.     MOV    DS,BX
  2235.     JMP    APUSH
  2236. ;
  2237.     DB    83H        ;  CFA
  2238.     DB    'CF'
  2239.     DB    'A'+80H
  2240.     DW    CATL-6
  2241. CFA    DW    DOCOL
  2242.     DW    TWOM
  2243.     DW    EXIT
  2244. ;
  2245.     DB    86H        ;  CHANGE
  2246.     DB    'CHANG'
  2247.     DB    'E'+80H
  2248.     DW    CFA-6
  2249. CHANGE    DW    DOCOL
  2250.     DW    FREEZE
  2251.     DW    LIMIT
  2252.     DW    LIT
  2253.     DW    404H
  2254.     DW    NOBUF
  2255.     DW    STAR
  2256.     DW    SUBB
  2257.     DW    DUPP
  2258.     DW    LIT
  2259.     DW    FIRST+2
  2260.     DW    STORE
  2261.     DW    LIT
  2262.     DW    US
  2263.     DW    SUBB
  2264.     DW    DUPP
  2265.     DW    LIT
  2266.     DW    RTS
  2267.     DW    SUBB
  2268.     DW    DUPP
  2269.     DW    LIT
  2270.     DW    INITUSER
  2271.     DW    STORE
  2272.     DW    LIT
  2273.     DW    INITUSER+4
  2274.     DW    STORE
  2275.     DW    DUPP
  2276.     DW    LIT
  2277.     DW    INITUSER+2
  2278.     DW    STORE
  2279.     DW    LIT
  2280.     DW    UP
  2281.     DW    OVER
  2282.     DW    LIT
  2283.     DW    RPP
  2284.     DW    LIT
  2285.     DW    ORIG
  2286.     DW    HERE
  2287.     DW    STORE
  2288.     DW    HERE
  2289.     DW    ROT
  2290.     DW    ROT
  2291.     DW    STORE
  2292.     DW    ROT
  2293.     DW    ROT
  2294.     DW    STORE
  2295.     DW    EXEC
  2296.     DW    EXIT
  2297. ;
  2298.     DB    85H        ;  CLEAR
  2299.     DB    'CLEA'
  2300.     DB    'R'+80H
  2301.     DW    CHANGE-9
  2302. CLEAR    DW    DOCOL
  2303.     DW    OFSET
  2304.     DW    ATT
  2305.     DW    PLUS
  2306.     DW    BUFFE
  2307.     DW    LIT
  2308.     DW    400H
  2309.     DW    BLL
  2310.     DW    FILL
  2311.     DW    UPDAT
  2312.     DW    EXIT
  2313. ;
  2314.     DB    85H        ;  CMOVE
  2315.     DB    'CMOV'
  2316.     DB    'E'+80H
  2317.     DW    CLEAR-8
  2318. CMOVE    DW    DOCOL
  2319.     DW    DUPP
  2320.     DW    ONE
  2321.     DW    LESS
  2322.     DW    ZBRAN
  2323.     DW    CMOVE1-$
  2324.     DW    DDROP
  2325.     DW    DROP
  2326.     DW    BRAN
  2327.     DW    CMOVE2-$
  2328. CMOVE1    DW    ACMOVE
  2329. CMOVE2    DW    EXIT
  2330. ;
  2331.     DB    84H        ;  COLD
  2332.     DB    'COL'
  2333.     DB    'D'+80H
  2334.     DW    CMOVE-8
  2335. COLD    DW    DOCOL
  2336.     DW    MTBUF
  2337.     DW    LIT
  2338.     DW    INITUSER
  2339.     DW    LIT
  2340.     DW    UP
  2341.     DW    ATT
  2342.     DW    LIT
  2343.     DW    6
  2344.     DW    PLUS
  2345.     DW    LIT
  2346.     DW    30H
  2347.     DW    CMOVE
  2348.     DW    PAGEE
  2349.     DW    ADOTQ
  2350.     DB    1DH
  2351.     DB    'MVP-FORTH   VERSION 1.0305.02'
  2352.     DW    CR
  2353.     DW    ONE
  2354.     DW    DENSTY
  2355.     DW    STORE
  2356.     DW    FIRST
  2357.     DW    USEE
  2358.     DW    STORE
  2359.     DW    FIRST
  2360.     DW    PREV
  2361.     DW    STORE
  2362.     DW    DR0
  2363.     DW    ZERO
  2364.     DW    EPRINT
  2365.     DW    STORE
  2366.     DW    LIT
  2367.     DW    INITFORTH
  2368.     DW    ATT
  2369.     DW    LIT
  2370.     DW    FORTH+2
  2371.     DW    TWOP
  2372.     DW    STORE
  2373.     DW    DEC
  2374.     DW    LIT
  2375.     DW    40H
  2376.     DW    LIT
  2377.     DW    40H
  2378.     DW    LIT
  2379.     DW    17H
  2380.     DW    STOREL
  2381.     DW    ABORT
  2382.     DW    EXIT
  2383. ;
  2384.     DB    87H        ;  COMPILE
  2385.     DB    'COMPIL'
  2386.     DB    'E'+80H
  2387.     DW    COLD-7
  2388. COMP    DW    DOCOL
  2389.     DW    QCOMP
  2390.     DW    FROMR
  2391.     DW    DUPP
  2392.     DW    TWOP
  2393.     DW    TOR
  2394.     DW    ATT
  2395.     DW    COMMA
  2396.     DW    EXIT
  2397. ;
  2398.     DB    89H        ;  CONFIGURE
  2399.     DB    'CONFIGUR'
  2400.     DB    'E'+80H
  2401.     DW    COMP-0AH
  2402. CONF    DW    DOCOL
  2403.     DW    QCONF
  2404.     DW    CR
  2405.     DW    ADOTQ
  2406.     DB    13H
  2407.     DB    'NUMBER OF DRIVES ? '
  2408.     DW    KEY
  2409.     DW    LIT
  2410.     DW    31H
  2411.     DW    SUBB
  2412.     DW    DUPP
  2413.     DW    LIT
  2414.     DW    5
  2415.     DW    ULESS
  2416.     DW    NOTT
  2417.     DW    AABORTQ
  2418.     DB    0FH
  2419.     DB    'TOO MANY DRIVES'
  2420.     DW    DUPP
  2421.     DW    LIT
  2422.     DW    31H
  2423.     DW    PLUS
  2424.     DW    EMIT
  2425.     DW    ONEP
  2426.     DW    LIT
  2427.     DW    MAXDRV+2
  2428.     DW    STORE
  2429.     DW    MAXDRV
  2430.     DW    ZERO
  2431.     DW    ADO
  2432. CONF1    DW    CR
  2433.     DW    ADOTQ
  2434.     DB    6
  2435.     DB    'DRIVE '
  2436.     DW    IDO
  2437.     DW    DOT
  2438.     DW    ADOTQ
  2439.     DB    2
  2440.     DB    '? '
  2441.     DW    KEY
  2442.     DW    LIT
  2443.     DW    30H
  2444.     DW    SUBB
  2445.     DW    DUPP
  2446.     DW    LIT
  2447.     DW    7
  2448.     DW    ULESS
  2449.     DW    NOTT
  2450.     DW    AABORTQ
  2451.     DB    0CH
  2452.     DB    'OUT OF RANGE'
  2453.     DW    DUPP
  2454.     DW    LIT
  2455.     DW    30H
  2456.     DW    PLUS
  2457.     DW    EMIT
  2458.     DW    IDO
  2459.     DW    TWOST
  2460.     DW    DEN
  2461.     DW    PLUS
  2462.     DW    STORE
  2463.     DW    ALOOP
  2464.     DW    CONF1-$
  2465.     DW    DR0
  2466.     DW    CR
  2467.     DW    CR
  2468.     DW    ADOTQ
  2469.     DB    0DH
  2470.     DB    'DR0 SELECTED '
  2471.     DW    CR
  2472.     DW    EXIT
  2473. ;
  2474.     DB    88H        ; CONSTANT
  2475.     DB    'CONSTAN'
  2476.     DB    'T'+80H
  2477.     DW    CONF-0CH
  2478. CON    DW    DOCOL
  2479.     DW    CREATE
  2480.     DW    COMMA
  2481.     DW    ASCODE
  2482. DOCON:    INC    DX
  2483.     MOV    BX,DX
  2484.     MOV    AX,[BX]
  2485.     JMP    APUSH
  2486. ;
  2487.     DB    87H        ;  CONTEXT
  2488.     DB    'CONTEX'
  2489.     DB    'T'+80H
  2490.     DW    CON-0BH
  2491. CONT    DW    DOUSE
  2492.     DW    3CH
  2493. ;
  2494.     DB    87H        ;  CONVERT
  2495.     DB    'CONVER'
  2496.     DB    'T'+80H
  2497.     DW    CONT-0AH
  2498. CONV    DW    DOCOL
  2499. CONV1    DW    ONEP
  2500.     DW    DUPP
  2501.     DW    TOR
  2502.     DW    CAT
  2503.     DW    BASE
  2504.     DW    ATT
  2505.     DW    DIGIT
  2506.     DW    ZBRAN
  2507.     DW    OFFSET CONV3-$
  2508.     DW    SWAP
  2509.     DW    BASE
  2510.     DW    ATT
  2511.     DW    USTAR
  2512.     DW    DROP
  2513.     DW    ROT
  2514.     DW    BASE
  2515.     DW    ATT
  2516.     DW    USTAR
  2517.     DW    DPLUS
  2518.     DW    DPL
  2519.     DW    ATT
  2520.     DW    ONEP
  2521.     DW    ZBRAN
  2522.     DW    OFFSET CONV2-$
  2523.     DW    ONE
  2524.     DW    DPL
  2525.     DW    PSTOR
  2526. CONV2    DW    FROMR
  2527.     DW    BRAN
  2528.     DW    OFFSET CONV1-$
  2529. CONV3    DW    FROMR
  2530.     DW    EXIT
  2531. ;
  2532.     DB    85H        ;  COUNT
  2533.     DB    'COUN'
  2534.     DB    'T'+80H
  2535.     DW    CONV-0AH
  2536. COUNT    DW    DOCOL
  2537.     DW    DUPP
  2538.     DW    ONEP
  2539.     DW    SWAP
  2540.     DW    CAT
  2541.     DW    EXIT
  2542. ;
  2543.     DB    82H        ;  CR
  2544.     DB    'C'
  2545.     DB    'R'+80H
  2546.     DW    COUNT-8
  2547. CR    DW    DOCOL
  2548.     DW    TCR
  2549.     DW    ATT
  2550.     DW    EXEC
  2551.     DW    EXIT
  2552. ;
  2553.     DB    86H        ;  CREATE
  2554.     DB    'CREAT'
  2555.     DB    'E'+80H
  2556.     DW    CR-5
  2557. CREATE    DW    DOCOL
  2558.     DW    BLL
  2559.     DW    WORDD
  2560.     DW    DUPP
  2561.     DW    DUPP
  2562.     DW    ONEP
  2563.     DW    CAT
  2564.     DW    ZERO
  2565.     DW    EQUAL
  2566.     DW    AABORTQ
  2567.     DB    1AH
  2568.     DB    'ATTEMPTED TO REDEFINE NULL'
  2569.     DW    DUPP
  2570.     DW    CONT
  2571.     DW    ATT
  2572.     DW    ATT
  2573.     DW    AFIND
  2574.     DW    ZBRAN
  2575.     DW    OFFSET CREA1-$
  2576.     DW    DDROP
  2577.     DW    WARN
  2578.     DW    ATT
  2579.     DW    ZBRAN
  2580.     DW    OFFSET CREA1-$
  2581.     DW    DUPP
  2582.     DW    COUNT
  2583.     DW    TYPEE
  2584.     DW    SPACE
  2585.     DW    ADOTQ
  2586.     DB    0DH
  2587.     DB    'ISN',27H,'T UNIQUE '
  2588. CREA1    DW    CAT
  2589.     DW    WIDTHH
  2590.     DW    ATT
  2591.     DW    MIN
  2592.     DW    ONEP
  2593.     DW    ALLOT
  2594.     DW    DUPP
  2595.     DW    LIT
  2596.     DW    80H
  2597.     DW    TOGGL
  2598.     DW    HERE
  2599.     DW    ONEM
  2600.     DW    LIT
  2601.     DW    80H
  2602.     DW    TOGGL
  2603.     DW    LATES
  2604.     DW    COMMA
  2605.     DW    TWO
  2606.     DW    ALLOT
  2607.     DW    CURR
  2608.     DW    ATT
  2609.     DW    STORE
  2610.     DW    ASCODE
  2611. DOVAR:    INC    DX
  2612.     PUSH    DX
  2613.     JMP    NEXT
  2614. ;
  2615.     DB    83H        ;  CSP
  2616.     DB    'CS'
  2617.     DB    'P'+80H
  2618.     DW    CREATE-9
  2619. CSP    DW    DOUSE
  2620.     DW    3EH
  2621. ;
  2622.     DB    87H        ; CURRENT
  2623.     DB    'CURREN'
  2624.     DB    'T'+80H
  2625.     DW    CSP-6
  2626. CURR    DW    DOUSE
  2627.     DW    40H
  2628. ;
  2629.     DB    82H        ;  DSTORE
  2630.     DB    'D'
  2631.     DB    '!'+80H
  2632.     DW    CURR-0AH
  2633. DSTOR    DW    $+2
  2634.     POP    BX
  2635.     POP    AX
  2636.     MOV    [BX],AX
  2637.     POP    AX
  2638.     MOV    2[BX],AX
  2639.     JMP    NEXT
  2640. ;
  2641.     DB    82H          ;  D+
  2642.     DB    'D'
  2643.     DB    '+'+80H
  2644.     DW    DSTOR-5
  2645. DPLUS    DW    $+2
  2646.     POP    AX
  2647.     POP    DX
  2648.     POP    BX
  2649.     POP    CX
  2650.     ADD    DX,CX
  2651.     ADC    AX,BX
  2652.     JMP    DPUSH
  2653. ;
  2654.     DB    83H        ;  D+-
  2655.     DB    'D+'
  2656.     DB    '-'+80H
  2657.     DW    DPLUS-5
  2658. DPM    DW    DOCOL
  2659.     DW    ZLESS
  2660.     DW    ZBRAN
  2661.     DW    OFFSET DPM1-$
  2662.     DW    DNEG
  2663. DPM1    DW    EXIT
  2664. ;
  2665.     DB    82H        ;  D.
  2666.     DB    'D'
  2667.     DB    '.'+80H
  2668.     DW    DPM-6
  2669. DDOT    DW    DOCOL
  2670.     DW    ZERO
  2671.     DW    DDOTR
  2672.     DW    SPACE
  2673.     DW    EXIT
  2674. ;
  2675.     DB    83H        ;  D.R
  2676.     DB    'D.'
  2677.     DB    'R'+80H
  2678.     DW    DDOT-5
  2679. DDOTR    DW    DOCOL
  2680.     DW    DEPTH
  2681.     DW    LIT
  2682.     DW    3
  2683.     DW    LESS
  2684.     DW    AABORTQ
  2685.     DB    0BH
  2686.     DB    'EMPTY STACK'
  2687.     DW    TOR
  2688.     DW    SWAP
  2689.     DW    OVER
  2690.     DW    DUPP
  2691.     DW    DPM
  2692.     DW    BDIGS
  2693.     DW    DIGS
  2694.     DW    ROT
  2695.     DW    SIGN
  2696.     DW    EDIGS
  2697.     DW    FROMR
  2698.     DW    OVER
  2699.     DW    SUBB
  2700.     DW    SPACS
  2701.     DW    TYPEE
  2702.     DW    EXIT
  2703. ;
  2704.     DB    82H        ;  D<
  2705.     DB    'D'
  2706.     DB    '<'+80H
  2707.     DW    DDOTR-6
  2708. DLESS    DW    DOCOL
  2709.     DW    ROT
  2710.     DW    DDUP
  2711.     DW    EQUAL
  2712.     DW    ZBRAN
  2713.     DW    DLESS1-$
  2714.     DW    ROT
  2715.     DW    ROT
  2716.     DW    DNEG
  2717.     DW    DPLUS
  2718.     DW    ZLESS
  2719.     DW    BRAN
  2720.     DW    DLESS2-$
  2721. DLESS1    DW    SWAP
  2722.     DW    LESS
  2723.     DW    SWAP
  2724.     DW    DROP
  2725. DLESS2    DW    SWAP
  2726.     DW    DROP
  2727.     DW    EXIT
  2728. ;
  2729.     DB    84H        ;  DABS
  2730.     DB    'DAB'
  2731.     DB    'S'+80H
  2732.     DW    DLESS-5
  2733. DABS    DW    DOCOL
  2734.     DW    DUPP
  2735.     DW    DPM
  2736.     DW    EXIT
  2737. ;
  2738.     DB    85H        ;  DDROP
  2739.     DB    'DDRO'
  2740.     DB    'P'+80H
  2741.     DW    DABS-7
  2742. DDROP    DW    $+2
  2743.     POP    BX
  2744.     POP    BX
  2745.     JMP    NEXT
  2746. ;
  2747.     DB    84H        ;  DDUP
  2748.     DB    'DDU'
  2749.     DB    'P'+80H
  2750.     DW    DDROP-8
  2751. DDUP    DW    $+2
  2752.     POP    AX
  2753.     POP    DX
  2754.     PUSH    DX
  2755.     PUSH    AX
  2756.     JMP    DPUSH
  2757. ;
  2758.     DB    87H        ;  DECIMAL
  2759.     DB    'DECIMA'
  2760.     DB    'L'+80H
  2761.     DW    DDUP-7
  2762. DEC    DW    DOCOL
  2763.     DW    LIT
  2764.     DW    0AH
  2765.     DW    BASE
  2766.     DW    STORE
  2767.     DW    EXIT
  2768. ;
  2769.     DB    8BH        ;  DEFINITIONS
  2770.     DB    'DEFINITION'
  2771.     DB    'S'+80H
  2772.     DW    DEC-0AH
  2773. DEFIN    DW    DOCOL
  2774.     DW    CONT
  2775.     DW    ATT
  2776.     DW    CURR
  2777.     DW    STORE
  2778.     DW    EXIT
  2779. ;
  2780.     DB    83H        ;  DEN
  2781.     DB    'DE'
  2782.     DB    'N'+80H
  2783.     DW    DEFIN-0EH
  2784. DEN    DW    DOVAR
  2785.     DW    0
  2786.     DW    0
  2787.     DW    1
  2788.     DW    1
  2789.     DW    1
  2790. ;
  2791.     DB    87H        ;  DENSITY
  2792.     DB    'DENSIT'
  2793.     DB    'Y'+80H
  2794.     DW    DEN-6
  2795. DENSTY    DW    DOVAR
  2796.     DW    0
  2797. ;
  2798.     DB    85H        ;  DEPTH
  2799.     DB    'DEPT'
  2800.     DB    'H'+80H
  2801.     DW    DENSTY-0AH
  2802. DEPTH    DW    DOCOL
  2803.     DW    SPAT
  2804.     DW    SZERO
  2805.     DW    SWAP
  2806.     DW    SUBB
  2807.     DW    TWOSL
  2808.     DW    EXIT
  2809. ;
  2810.     DB    85H        ;  DIGIT
  2811.     DB    'DIGI'
  2812.     DB    'T'+80H
  2813.     DW    DEPTH-8
  2814. DIGIT    DW    $+2
  2815.     POP    DX
  2816.     POP    AX
  2817.     SUB    AL,'0'
  2818.     JB    DIGI2
  2819.     CMP    AL,9H
  2820.     JBE    DIGI1
  2821.     SUB    AL,7H
  2822.     CMP    AL,0AH
  2823.     JB    DIGI2
  2824. DIGI1:    CMP    AL,DL
  2825.     JAE    DIGI2
  2826.     SUB    DX,DX
  2827.     MOV    DL,AL
  2828.     MOV    AL,01H
  2829.     JMP    DPUSH
  2830. DIGI2:    SUB    AX,AX
  2831.     JMP    APUSH
  2832. ;
  2833.     DB    8AH        ;  DISK-ERROR
  2834.     DB    'DISK-ERRO'
  2835.     DB    'R'+80H
  2836.     DW    DIGIT-8
  2837. DSKERR    DW    DOVAR
  2838.     DW    0
  2839. ;
  2840.     DB    0C8H        ;  DLITERAL
  2841.     DB    'DLITERA'
  2842.     DB    'L'+80H
  2843.     DW    DSKERR-0DH
  2844. DLITE    DW    DOCOL
  2845.     DW    STATE
  2846.     DW    ATT
  2847.     DW    ZBRAN
  2848.     DW    OFFSET DLITE1-$
  2849.     DW    SWAP
  2850.     DW    LITER
  2851.     DW    LITER
  2852. DLITE1    DW    EXIT
  2853. ;
  2854.     DB    87H        ;  DNEGATE
  2855.     DB    'DNEGAT'
  2856.     DB    'E'+80H
  2857.     DW    DLITE-0BH
  2858. DNEG    DW    $+2
  2859.     POP    BX
  2860.     POP    CX
  2861.     SUB    AX,AX
  2862.     MOV    DX,AX
  2863.     SUB    DX,CX
  2864.     SBB    AX,BX
  2865.     JMP    DPUSH
  2866. ;
  2867.     DB    0C2H        ;  DO
  2868.     DB    'D'
  2869.     DB    'O'+80H
  2870.     DW    DNEG-0AH
  2871. DO    DW    DOCOL
  2872.     DW    COMP
  2873.     DW    ADO
  2874.     DW    HERE
  2875.     DW    LIT
  2876.     DW    3
  2877.     DW    EXIT
  2878. ;
  2879.     DB    0C5H        ;  DOES>
  2880.     DB    'DOES'
  2881.     DB    '>'+80H
  2882.     DW    DO-5
  2883. DOES    DW    DOCOL
  2884.     DW    QCSP
  2885.     DW    COMP
  2886.     DW    ASCODE
  2887.     DW    LIT
  2888.     DW    0E8H
  2889.     DW    CCOMM
  2890.     DW    LIT
  2891.     DW    DODOES
  2892.     DW    HERE
  2893.     DW    TWOP
  2894.     DW    SUBB
  2895.     DW    COMMA
  2896.     DW    EXIT
  2897. ;
  2898. DODOES: INC    DX
  2899.     DEC    BP
  2900.     DEC    BP
  2901.     MOV    [BP],SI
  2902.     POP    SI
  2903.     PUSH    DX
  2904.     JMP    NEXT
  2905. ;
  2906.     DB    82H        ;  DP
  2907.     DB    'D'
  2908.     DB    'P'+80H
  2909.     DW    DOES-8
  2910. DP    DW    DOUSE
  2911.     DW    12H
  2912. ;
  2913.     DB    83H        ;  DPL
  2914.     DB    'DP'
  2915.     DB    'L'+80H
  2916.     DW    DP-5
  2917. DPL    DW    DOUSE
  2918.     DW    42H
  2919. ;
  2920.     DB    85H        ;  DPUSH
  2921.     DB    'DPUS'
  2922.     DB    'H'+80H
  2923.     DW    DPL-6
  2924. DPUS    DW    DOCON
  2925.     DW    DPUSH
  2926. ;
  2927.     DB    86H        ;  DR-DEN
  2928.     DB    'DR-DE'
  2929.     DB    'N'+80H
  2930.     DW    DPUS-8
  2931. DRDEN    DW    DOCOL
  2932.     DW    TWOST
  2933.     DW    DEN
  2934.     DW    PLUS
  2935.     DW    ATT
  2936.     DW    EXIT
  2937. ;
  2938.     DB    83H        ;  DR0
  2939.     DB    'DR'
  2940.     DB    '0'+80H
  2941.     DW    DRDEN-9
  2942. DR0    DW    DOCOL
  2943.     DW    ZERO
  2944.     DW    OFSET
  2945.     DW    STORE
  2946.     DW    EXIT
  2947. ;
  2948.     DB    83H        ;  DR1
  2949.     DB    'DR'
  2950.     DB    '1'+80H
  2951.     DW    DR0-6
  2952. DR1    DW    DOCOL
  2953.     DW    DR0
  2954.     DW    ZERO
  2955.     DW    SETDRX
  2956.     DW    EXIT
  2957. ;
  2958.     DB    83H        ; DR2
  2959.     DB    'DR'
  2960.     DB    '2'+80H
  2961.     DW    DR1-6
  2962. DR2    DW    DOCOL
  2963.     DW    DR1
  2964.     DW    ONE
  2965.     DW    SETDRX
  2966.     DW    EXIT
  2967. ;
  2968.     DB    83H        ;  DR3
  2969.     DB    'DR'
  2970.     DB    '3'+80H
  2971.     DW    DR2-6
  2972. DR3    DW    DOCOL
  2973.     DW    DR2
  2974.     DW    TWO
  2975.     DW    SETDRX
  2976.     DW    EXIT
  2977. ;
  2978.     DB    83H        ;  DR4
  2979.     DB    'DR'
  2980.     DB    '4'+80H
  2981.     DW    DR3-6
  2982. DR4    DW    DOCOL
  2983.     DW    DR3
  2984.     DW    LIT
  2985.     DW    3
  2986.     DW    SETDRX
  2987.     DW    EXIT
  2988. ;
  2989.     DB    85H        ;  DRIVE
  2990.     DB    'DRIV'
  2991.     DB    'E'+80H
  2992.     DW    DR4-6
  2993. DRIVE    DW    DOVAR
  2994.     DW    00
  2995. ;
  2996.     DB    84H        ;  DROP
  2997.     DB    'DRO'
  2998.     DB    'P'+80H
  2999.     DW    DRIVE-8
  3000. DROP    DW    $+2
  3001.     POP    AX
  3002.     JMP    NEXT
  3003. ;
  3004.     DB    83H        ;  DUP
  3005.     DB    'DU'
  3006.     DB    'P'+80H
  3007.     DW    DROP-7
  3008. DUPP    DW    $+2
  3009.     POP    AX
  3010.     PUSH    AX
  3011.     JMP    APUSH
  3012. ;
  3013.     DB    0C4H        ;  ELSE
  3014.     DB    'ELS'
  3015.     DB    'E'+80H
  3016.     DW    DUPP-6
  3017. ELSEE    DW    DOCOL
  3018.     DW    TWO
  3019.     DW    QPAIR
  3020.     DW    COMP
  3021.     DW    BRAN
  3022.     DW    HERE
  3023.     DW    ZERO
  3024.     DW    COMMA
  3025.     DW    SWAP
  3026.     DW    TWO
  3027.     DW    THENN
  3028.     DW    TWO
  3029.     DW    EXIT
  3030. ;
  3031.     DB    84H        ;  EMIT
  3032.     DB    'EMI'
  3033.     DB    'T'+80H
  3034.     DW    ELSEE-7
  3035. EMIT    DW    DOCOL
  3036.     DW    TEMIT
  3037.     DW    ATT
  3038.     DW    EXEC
  3039.     DW    EXIT
  3040. ;
  3041.     DB    8DH        ;  EMPTY-BUFFERS
  3042.     DB    'EMPTY-BUFFER'
  3043.     DB    'S'+80H
  3044.     DW    EMIT-7
  3045. MTBUF    DW    DOCOL
  3046.     DW    FIRST
  3047.     DW    LIMIT
  3048.     DW    OVER
  3049.     DW    SUBB
  3050.     DW    ZERO
  3051.     DW    AFILL
  3052.     DW    NOBUF
  3053.     DW    ZERO
  3054.     DW    ADO
  3055. MTBUF1    DW    LIT
  3056.     DW    7FFFH
  3057.     DW    LIT
  3058.     DW    404H
  3059.     DW    IDO
  3060.     DW    STAR
  3061.     DW    FIRST
  3062.     DW    PLUS
  3063.     DW    STORE
  3064.     DW    ALOOP
  3065.     DW    OFFSET MTBUF1-$
  3066.     DW    EXIT
  3067. ;
  3068.     DB    87H        ;  ENCLOSE
  3069.     DB    'ENCLOS'
  3070.     DB    'E'+80H
  3071.     DW    MTBUF-10H
  3072. ENCL    DW    $+2
  3073.     POP    AX
  3074.     POP    BX
  3075.     PUSH    BX
  3076.     MOV    DX,0FFFFH
  3077.     DEC    BX
  3078. ENCL1:    INC    BX
  3079.     INC    DX
  3080.     CMP    AL,[BX]
  3081.     JZ    ENCL1
  3082.     PUSH    DX
  3083.     INC    BYTE PTR [BX]
  3084.     DEC    BYTE PTR [BX]
  3085.     JNZ    ENCL2
  3086.     INC    DX
  3087.     PUSH    DX
  3088.     DEC    DX
  3089.     PUSH    DX
  3090.     JMP    NEXT
  3091. ENCL2:    INC    BX
  3092.     INC    DX
  3093.     CMP    AL,[BX]
  3094.     JZ    ENCL3
  3095.     INC    BYTE PTR [BX]
  3096.     DEC    BYTE PTR [BX]
  3097.     JNZ    ENCL2
  3098.     PUSH    DX
  3099.     PUSH    DX
  3100.     JMP    NEXT
  3101. ENCL3:    PUSH    DX
  3102.     INC    DX
  3103.     PUSH    DX
  3104.     JMP    NEXT
  3105. ;
  3106.     DB    86H        ;  EPRINT
  3107.     DB    'EPRIN'
  3108.     DB    'T'+80H
  3109.     DW    ENCL-0AH
  3110. EPRINT    DW    DOVAR
  3111.     DW    0
  3112. ;
  3113.     DB    87H        ;  EXECUTE
  3114.     DB    'EXECUT'
  3115.     DB    'E'+80H
  3116.     DW    EPRINT-9
  3117. EXEC    DW    $+2
  3118.     POP    BX
  3119.     JMP    NEXT1
  3120. ;
  3121.     DB    84H        ;  EXIT
  3122.     DB    'EXI'
  3123.     DB    'T'+80H
  3124.     DW    EXEC-0AH
  3125. EXIT    DW    $+2
  3126.     MOV    SI,[BP]
  3127.     INC    BP
  3128.     INC    BP
  3129.     JMP    NEXT
  3130. ;
  3131.     DB    86H        ;  EXPECT
  3132.     DB    'EXPEC'
  3133.     DB    'T'+80H
  3134.     DW    EXIT-7
  3135. EXPEC    DW    DOCOL
  3136.     DW    TEXPECT
  3137.     DW    ATT
  3138.     DW    EXEC
  3139.     DW    EXIT
  3140. ;
  3141.     DB    85H        ;  FENCE
  3142.     DB    'FENC'
  3143.     DB    'E'+80H
  3144.     DW    EXPEC-9
  3145. FENCE    DW    DOUSE
  3146.     DW    10H
  3147. ;
  3148.     DB    84H        ;  FILL
  3149.     DB    'FIL'
  3150.     DB    'L'+80H
  3151.     DW    FENCE-8
  3152. FILL    DW    DOCOL
  3153.     DW    OVER
  3154.     DW    ZGREAT
  3155.     DW    ZBRAN
  3156.     DW    FILL1-$
  3157.     DW    AFILL
  3158.     DW    BRAN
  3159.     DW    FILL2-$
  3160. FILL1    DW    DDROP
  3161.     DW    DROP
  3162. FILL2    DW    EXIT
  3163. ;
  3164.     DB    84H        ;  FIND
  3165.     DB    'FIN'
  3166.     DB    'D'+80H
  3167.     DW    FILL-7
  3168. FIND    DW    DOCOL
  3169.     DW    DFIND
  3170.     DW    ZBRAN
  3171.     DW    FIND1-$
  3172.     DW    DROP
  3173.     DW    CFA
  3174.     DW    BRAN
  3175.     DW    FIND2-$
  3176. FIND1    DW    ZERO
  3177. FIND2    DW    EXIT
  3178. ;
  3179.     DB    85H        ;  FIRST
  3180.     DB    'FIRS'
  3181.     DB    'T'+80H
  3182.     DW    FIND-7
  3183. FIRST    DW    DOCON
  3184.     DW    BUF1
  3185. ;
  3186.     DB    83H        ;  FLD
  3187.     DB    'FL'
  3188.     DB    'D'+80H
  3189.     DW    FIRST-8
  3190. FLD    DW    DOUSE
  3191.     DW    44H
  3192. ;
  3193.     DB    86H        ;  FORGET
  3194.     DB    'FORGE'
  3195.     DB    'T'+80H
  3196.     DW    FLD-6
  3197. FORG    DW    DOCOL
  3198.     DW    BLL
  3199.     DW    WORDD
  3200.     DW    CURR
  3201.     DW    ATT
  3202.     DW    ATT
  3203.     DW    AFIND
  3204.     DW    ZEQU
  3205.     DW    AABORTQ
  3206.     DB    19H
  3207.     DB    'NOT IN CURRENT VOCABULARY'
  3208.     DW    DROP
  3209.     DW    NFA
  3210.     DW    DUPP
  3211.     DW    FENCE
  3212.     DW    ATT
  3213.     DW    ULESS
  3214.     DW    AABORTQ
  3215.     DB    17H
  3216.     DB    'IN PROTECTED DICTIONARY'
  3217.     DW    TOR
  3218.     DW    RAT
  3219.     DW    CONT
  3220.     DW    ATT
  3221.     DW    ULESS
  3222.     DW    ZBRAN
  3223.     DW    FORG1-$
  3224.     DW    FORTH
  3225. FORG1    DW    RAT
  3226.     DW    CURR
  3227.     DW    ATT
  3228.     DW    ULESS
  3229.     DW    ZBRAN
  3230.     DW    FORG2-$
  3231.     DW    FORTH
  3232.     DW    DEFIN
  3233. FORG2    DW    VOCL
  3234.     DW    ATT
  3235. FORG3    DW    RAT
  3236.     DW    OVER
  3237.     DW    ULESS
  3238.     DW    ZBRAN
  3239.     DW    FORG4-$
  3240.     DW    ATT
  3241.     DW    BRAN
  3242.     DW    FORG3-$
  3243. FORG4    DW    DUPP
  3244.     DW    VOCL
  3245.     DW    STORE
  3246. FORG5    DW    DUPP
  3247.     DW    LIT
  3248.     DW    4
  3249.     DW    SUBB
  3250. FORG6    DW    PFA
  3251.     DW    LFA
  3252.     DW    ATT
  3253.     DW    DUPP
  3254.     DW    RAT
  3255.     DW    ULESS
  3256.     DW    ZBRAN
  3257.     DW    FORG6-$
  3258.     DW    OVER
  3259.     DW    TWOM
  3260.     DW    STORE
  3261.     DW    ATT
  3262.     DW    QDUP
  3263.     DW    ZEQU
  3264.     DW    ZBRAN
  3265.     DW    FORG5-$
  3266.     DW    FROMR
  3267.     DW    DP
  3268.     DW    STORE
  3269.     DW    EXIT
  3270. ;
  3271.     DB    0C5H        ;  FORTH
  3272.     DB    'FORT'
  3273.     DB    'H'+80H
  3274.     DW    FORG-9
  3275. FORTH    DW    DOVOC
  3276.     DW    0A081H
  3277.     DW    RBRAC-4
  3278.     DW    00
  3279. ;
  3280.     DB    86H        ;  FREEZE
  3281.     DB    'FREEZ'
  3282.     DB    'E'+80H
  3283.     DW    FORTH-8
  3284. FREEZE    DW    DOCOL
  3285.     DW    LIT
  3286.     DW    UP
  3287.     DW    ATT
  3288.     DW    LIT
  3289.     DW    6
  3290.     DW    PLUS
  3291.     DW    LIT
  3292.     DW    INITUSER
  3293.     DW    LIT
  3294.     DW    30H
  3295.     DW    CMOVE
  3296.     DW    LIT
  3297.     DW    FORTH+2
  3298.     DW    TWOP
  3299.     DW    ATT
  3300.     DW    LIT
  3301.     DW    INITFORTH
  3302.     DW    STORE
  3303.     DW    EXIT
  3304. ;
  3305.     DB    84H        ;  HERE
  3306.     DB    'HER'
  3307.     DB    'E'+80H
  3308.     DW    FREEZE-9
  3309. HERE    DW    DOCOL
  3310.     DW    DP
  3311.     DW    ATT
  3312.     DW    EXIT
  3313. ;
  3314.     DB    83H        ;  HEX
  3315.     DB    'HE'
  3316.     DB    'X'+80H
  3317.     DW    HERE-7
  3318. HEX    DW    DOCOL
  3319.     DW    LIT
  3320.     DW    10H
  3321.     DW    BASE
  3322.     DW    STORE
  3323.     DW    EXIT
  3324. ;
  3325.     DB    83H        ;  HLD
  3326.     DB    'HL'
  3327.     DB    'D'+80H
  3328.     DW    HEX-6
  3329. HLD    DW    DOUSE
  3330.     DW    46H
  3331. ;
  3332.     DB    84H        ;  HOLD
  3333.     DB    'HOL'
  3334.     DB    'D'+80H
  3335.     DW    HLD-6
  3336. HOLD    DW    DOCOL
  3337.     DW    LIT
  3338.     DW    0FFFFH
  3339.     DW    HLD
  3340.     DW    PSTOR
  3341.     DW    HLD
  3342.     DW    ATT
  3343.     DW    CSTOR
  3344.     DW    EXIT
  3345. ;
  3346.     DB    81H        ;  I
  3347.     DB    'I'+80H
  3348.     DW    HOLD-7
  3349. IDO    DW    $+2
  3350.     MOV    AX,[BP]
  3351.     JMP    APUSH
  3352. ;
  3353.     DB    82H        ;  I'
  3354.     DB    'I'
  3355.     DB    0A7H
  3356.     DW    IDO-4
  3357. IPDO    DW    $+2
  3358.     MOV    AX,[BP+2]
  3359.     JMP    APUSH
  3360. ;
  3361.     DB    0C2H        ;  IF
  3362.     DB    'I'
  3363.     DB    'F'+80H
  3364.     DW    IPDO-5
  3365. IFF    DW    DOCOL
  3366.     DW    COMP
  3367.     DW    ZBRAN
  3368.     DW    HERE
  3369.     DW    ZERO
  3370.     DW    COMMA
  3371.     DW    TWO
  3372.     DW    EXIT
  3373. ;
  3374.     DB    89H        ;  IMMEDIATE
  3375.     DB    'IMMEDIAT'
  3376.     DB    'E'+80H
  3377.     DW    IFF-5
  3378. IMMED    DW    DOCOL
  3379.     DW    LATES
  3380.     DW    LIT
  3381.     DW    40H
  3382.     DW    TOGGL
  3383.     DW    EXIT
  3384. ;
  3385.     DB    8AH        ;  INIT-FORTH
  3386.     DB    'INIT-FORT'
  3387.     DB    'H'+80H
  3388.     DW    IMMED-0CH
  3389. IFORTH    DW    DOCON
  3390.     DW    INITFORTH
  3391. ;
  3392.     DB    89H        ;  INIT-USER
  3393.     DB    'INIT-USE'
  3394.     DB    'R'+80H
  3395.     DW    IFORTH-0DH
  3396. IUSER    DW    DOCON
  3397.     DW    INITUSER
  3398. ;
  3399.     DB    87H        ;  INTCALL
  3400.     DB    'INTCAL'
  3401.     DB    'L'+80H
  3402.     DW    IUSER-0CH
  3403. INTCAL    DW    DOCOL
  3404.     DW    LIT
  3405.     DW    INTCA2+1
  3406.     DW    CSTOR
  3407.     DW    LIT
  3408.     DW    INTCA1
  3409.     DW    EXEC
  3410.     DW    EXIT
  3411. ;
  3412. INTCA1    DW    $+2
  3413.     POP    DX
  3414.     POP    CX
  3415.     POP    BX
  3416.     POP    AX
  3417.     PUSH    SI
  3418.     PUSH    BP
  3419. INTCA2: INT    0
  3420.     POP    BP
  3421.     POP    SI
  3422.     JMP    APUSH
  3423. ;
  3424.     DB    89H        ;  INTERPRET
  3425.     DB    'INTERPRE'
  3426.     DB    'T'+80H
  3427.     DW    INTCAL-0AH
  3428. INTER    DW    DOCOL
  3429.     DW    TINTER
  3430.     DW    ATT
  3431.     DW    EXEC
  3432.     DW    EXIT
  3433. ;
  3434. ;
  3435.     DB    81H        ;  J
  3436.     DB    'J'+80H
  3437.     DW    INTER-0CH
  3438. JDO    DW    $+2
  3439.     MOV    AX,[BP+4]
  3440.     JMP    APUSH
  3441. ;
  3442.     DB    83H        ;  KEY
  3443.     DB    'KE'
  3444.     DB    'Y'+80H
  3445.     DW    JDO-4
  3446. KEY    DW    DOCOL
  3447.     DW    TKEY
  3448.     DW    ATT
  3449.     DW    EXEC
  3450.     DW    EXIT
  3451. ;
  3452.     DB    86H        ;  LATEST
  3453.     DB    'LATES'
  3454.     DB    'T'+80H
  3455.     DW    KEY-6
  3456. LATES    DW    DOCOL
  3457.     DW    CURR
  3458.     DW    ATT
  3459.     DW    ATT
  3460.     DW    EXIT
  3461. ;
  3462.     DB    85H        ;  LEAVE
  3463.     DB    'LEAV'
  3464.     DB    'E'+80H
  3465.     DW    LATES-9
  3466. LEAVE    DW    $+2
  3467.     MOV    AX,[BP]
  3468.     MOV    2[BP],AX
  3469.     JMP    NEXT
  3470. ;
  3471.     DB    83H        ;  LFA
  3472.     DB    'LF'
  3473.     DB    'A'+80H
  3474.     DW    LEAVE-8
  3475. LFA    DW    DOCOL
  3476.     DW    LIT
  3477.     DW    4
  3478.     DW    SUBB
  3479.     DW    EXIT
  3480. ;
  3481.     DB    85H        ;  LIMIT
  3482.     DB    'LIMI'
  3483.     DB    'T'+80H
  3484.     DW    LFA-6
  3485. LIMIT    DW    DOCON
  3486.     DW    EM
  3487. ;
  3488.     DB    84H        ;  LIST
  3489.     DB    'LIS'
  3490.     DB    'T'+80H
  3491.     DW    LIMIT-8
  3492. LIST    DW    DOCOL
  3493.     DW    CR
  3494.     DW    DUPP
  3495.     DW    SCR
  3496.     DW    STORE
  3497.     DW    ADOTQ
  3498.     DB    5
  3499.     DB    'SCR #'
  3500.     DW    DOT
  3501.     DW    LIT
  3502.     DW    10H
  3503.     DW    ZERO
  3504.     DW    ADO
  3505. LIST1    DW    CR
  3506.     DW    RAT
  3507.     DW    LIT
  3508.     DW    3
  3509.     DW    DOTR
  3510.     DW    SPACE
  3511.     DW    RAT
  3512.     DW    SCR
  3513.     DW    ATT
  3514.     DW    DLINE
  3515.     DW    QTERM
  3516.     DW    ZBRAN
  3517.     DW    OFFSET LIST2-$
  3518.     DW    LEAVE
  3519. LIST2    DW    ALOOP
  3520.     DW    OFFSET LIST1-$
  3521.     DW    CR
  3522.     DW    EXIT
  3523. ;
  3524.     DB    83H        ;  LIT
  3525.     DB    'LI'
  3526.     DB    'T'+80H
  3527.     DW    LIST-7
  3528. LIT    DW    $+2
  3529.     MOV    AX,[SI]
  3530.     INC    SI
  3531.     INC    SI
  3532.     JMP    APUSH
  3533. ;
  3534.     DB    0C7H        ;  LITERAL
  3535.     DB    'LITERA'
  3536.     DB    'L'+80H
  3537.     DW    LIT-6
  3538. LITER    DW    DOCOL
  3539.     DW    STATE
  3540.     DW    ATT
  3541.     DW    ZBRAN
  3542.     DW    OFFSET LITER1-$
  3543.     DW    COMP
  3544.     DW    LIT
  3545.     DW    COMMA
  3546. LITER1    DW    EXIT
  3547. ;
  3548.     DB    84H        ;  LOAD
  3549.     DB    'LOA'
  3550.     DB    'D'+80H
  3551.     DW    LITER-0AH
  3552. LOAD    DW    DOCOL
  3553.     DW    TLOAD
  3554.     DW    ATT
  3555.     DW    EXEC
  3556.     DW    EXIT
  3557. ;
  3558.     DB    0C4H        ;  LOOP
  3559.     DB    'LOO'
  3560.     DB    'P'+80H
  3561.     DW    LOAD-7
  3562. LOOP    DW    DOCOL
  3563.     DW    LIT
  3564.     DW    3
  3565.     DW    QPAIR
  3566.     DW    COMP
  3567.     DW    ALOOP
  3568.     DW    HERE
  3569.     DW    SUBB
  3570.     DW    COMMA
  3571.     DW    EXIT
  3572. ;
  3573.     DB    82H        ;  M*
  3574.     DB    'M'
  3575.     DB    '*'+80H
  3576.     DW    LOOP-7
  3577. MSTAR    DW    DOCOL
  3578.     DW    DDUP
  3579.     DW    XORR
  3580.     DW    TOR
  3581.     DW    ABSS
  3582.     DW    SWAP
  3583.     DW    ABSS
  3584.     DW    USTAR
  3585.     DW    FROMR
  3586.     DW    DPM
  3587.     DW    EXIT
  3588. ;
  3589.     DB    83H        ;  M*/
  3590.     DB    'M*'
  3591.     DB    '/'+80H
  3592.     DW    MSTAR-5
  3593. MSTARSL DW    DOCOL
  3594.     DW    DDUP
  3595.     DW    XORR
  3596.     DW    SWAP
  3597.     DW    ABSS
  3598.     DW    TOR
  3599.     DW    SWAP
  3600.     DW    ABSS
  3601.     DW    TOR
  3602.     DW    OVER
  3603.     DW    XORR
  3604.     DW    ROT
  3605.     DW    ROT
  3606.     DW    DABS
  3607.     DW    SWAP
  3608.     DW    RAT
  3609.     DW    USTAR
  3610.     DW    ROT
  3611.     DW    FROMR
  3612.     DW    USTAR
  3613.     DW    ROT
  3614.     DW    ZERO
  3615.     DW    DPLUS
  3616.     DW    RAT
  3617.     DW    USLM
  3618.     DW    ROT
  3619.     DW    ROT
  3620.     DW    FROMR
  3621.     DW    USLM
  3622.     DW    SWAP
  3623.     DW    DROP
  3624.     DW    SWAP
  3625.     DW    ROT
  3626.     DW    DPM
  3627.     DW    EXIT
  3628. ;
  3629.     DB    82H        ;  M+
  3630.     DB    'M'
  3631.     DB    '+'+80H
  3632.     DW    MSTARSL-6
  3633. MPLUS    DW    DOCOL
  3634.     DW    STOD
  3635.     DW    DPLUS
  3636.     DW    EXIT
  3637. ;
  3638.     DB    82H        ;  M/
  3639.     DB    'M'
  3640.     DB    '/'+80H
  3641.     DW    MPLUS-5
  3642. MSLAS    DW    DOCOL
  3643.     DW    OVER
  3644.     DW    TOR
  3645.     DW    TOR
  3646.     DW    DUPP
  3647.     DW    DPM
  3648.     DW    RAT
  3649.     DW    ABSS
  3650.     DW    USLM
  3651.     DW    FROMR
  3652.     DW    RAT
  3653.     DW    XORR
  3654.     DW    PM
  3655.     DW    SWAP
  3656.     DW    FROMR
  3657.     DW    PM
  3658.     DW    SWAP
  3659.     DW    EXIT
  3660. ;
  3661.     DB    85H        ;  M/MOD
  3662.     DB    'M/MO'
  3663.     DB    'D'+80H
  3664.     DW    MSLAS-5
  3665. MSMOD    DW    DOCOL
  3666.     DW    TOR
  3667.     DW    ZERO
  3668.     DW    RAT
  3669.     DW    USLM
  3670.     DW    FROMR
  3671.     DW    SWAP
  3672.     DW    TOR
  3673.     DW    USLM
  3674.     DW    FROMR
  3675.     DW    EXIT
  3676. ;
  3677.     DB    83H        ;  MAX
  3678.     DB    'MA'
  3679.     DB    'X'+80H
  3680.     DW    MSMOD-8
  3681. MAX    DW    DOCOL
  3682.     DW    DDUP
  3683.     DW    LESS
  3684.     DW    ZBRAN
  3685.     DW    OFFSET MAX1-$
  3686.     DW    SWAP
  3687. MAX1    DW    DROP
  3688.     DW    EXIT
  3689. ;
  3690.     DB    87H        ;  MAX-DRV
  3691.     DB    'MAX-DR'
  3692.     DB    'V'+80H
  3693.     DW    MAX-6
  3694. MAXDRV    DW    DOCON
  3695.     DW    2
  3696. ;
  3697.     DB    83H        ;  MIN
  3698.     DB    'MI'
  3699.     DB    'N'+80H
  3700.     DW    MAXDRV-0AH
  3701. MIN    DW    DOCOL
  3702.     DW    DDUP
  3703.     DW    GREAT
  3704.     DW    ZBRAN
  3705.     DW    OFFSET MIN1-$
  3706.     DW    SWAP
  3707. MIN1    DW    DROP
  3708.     DW    EXIT
  3709. ;
  3710.     DB    83H        ;  MOD
  3711.     DB    'MO'
  3712.     DB    'D'+80H
  3713.     DW    MIN-6
  3714. MODD    DW    DOCOL
  3715.     DW    SLMOD
  3716.     DW    DROP
  3717.     DW    EXIT
  3718. ;
  3719.     DB    84H        ;  MOVE
  3720.     DB    'MOV'
  3721.     DB    'E'+80H
  3722.     DW    MODD-6
  3723. MOVE    DW    DOCOL
  3724.     DW    ZERO
  3725.     DW    MAX
  3726.     DW    TWOST
  3727.     DW    ACMOVE
  3728.     DW    EXIT
  3729. ;
  3730.     DB    86H        ;  NEGATE
  3731.     DB    'NEGAT'
  3732.     DB    'E'+80H
  3733.     DW    MOVE-7
  3734. NEG    DW    $+2
  3735.     POP    AX
  3736.     NEG    AX
  3737.     JMP    APUSH
  3738. ;
  3739.     DB    84H        ;  NEXT
  3740.     DB    'NEX'
  3741.     DB    'T'+80H
  3742.     DW    NEG-9
  3743. CNEXT    DW    DOCON
  3744.     DW    NEXT
  3745. ;
  3746.     DB    85H        ;  NEXT1
  3747.     DB    'NEXT'
  3748.     DB    '1'+80H
  3749.     DW    CNEXT-7
  3750. CNEXT1    DW    DOCON
  3751.     DW    NEXT1
  3752. ;
  3753.     DB    83H        ;  NFA
  3754.     DB    'NF'
  3755.     DB    'A'+80H
  3756.     DW    CNEXT1-8
  3757. NFA    DW    DOCOL
  3758.     DW    LIT
  3759.     DW    5
  3760.     DW    SUBB
  3761.     DW    LIT
  3762.     DW    0FFFFH
  3763.     DW    TRAV
  3764.     DW    EXIT
  3765. ;
  3766.     DB    83H        ;  NOT
  3767.     DB    'NO'
  3768.     DB    'T'+80H
  3769.     DW    NFA-6
  3770. NOTT    DW    $+2
  3771.     POP    AX
  3772.     OR    AX,AX
  3773.     MOV    AX,1H
  3774.     JZ    NOT1
  3775.     DEC    AX
  3776. NOT1:    JMP    APUSH
  3777. ;
  3778.     DB    86H        ;  NUMBER
  3779.     DB    'NUMBE'
  3780.     DB    'R'+80H
  3781.     DW    NOTT-6
  3782. NUM    DW    DOCOL
  3783.     DW    TNUM
  3784.     DW    ATT
  3785.     DW    EXEC
  3786.     DW    EXIT
  3787. ;
  3788.     DB    86H        ;  OFFSET
  3789.     DB    'OFFSE'
  3790.     DB    'T'+80H
  3791.     DW    NUM-9
  3792. OFSET    DW    DOUSE
  3793.     DW    48H
  3794. ;
  3795.     DB    82H        ;  OR
  3796.     DB    'O'
  3797.     DB    'R'+80H
  3798.     DW    OFSET-9
  3799. ORR    DW    $+2
  3800.     POP    AX
  3801.     POP    BX
  3802.     OR    AX,BX
  3803.     JMP    APUSH
  3804. ;
  3805.     DB    83H        ;  OUT
  3806.     DB    'OU'
  3807.     DB    'T'+80H
  3808.     DW    ORR-5
  3809. OUTT    DW    DOUSE
  3810.     DW    4AH
  3811. ;
  3812.     DB    84H        ;  OVER
  3813.     DB    'OVE'
  3814.     DB    'R'+80H
  3815.     DW    OUTT-6
  3816. OVER    DW    $+2
  3817.     POP    DX
  3818.     POP    AX
  3819.     PUSH    AX
  3820.     JMP    DPUSH
  3821. ;
  3822.     DB    82H        ;  PSTORE
  3823.     DB    'P'
  3824.     DB    '!'+80H
  3825.     DW    OVER-7
  3826. PTSTOR    DW    $+2
  3827.     POP    DX
  3828.     POP    AX
  3829.     OUT    DX,AL
  3830.     JMP    NEXT
  3831. ;
  3832.     DB    82H        ;  P@
  3833.     DB    'P'
  3834.     DB    '@'+80H
  3835.     DW    PTSTOR-5
  3836. PTAT    DW    $+2
  3837.     POP    DX
  3838.     IN    AL,DX
  3839.     SUB    AH,AH
  3840.     JMP    APUSH
  3841. ;
  3842.     DB    83H        ;  PAD
  3843.     DB    'PA'
  3844.     DB    'D'+80H
  3845.     DW    PTAT-5
  3846. PAD    DW    DOCOL
  3847.     DW    HERE
  3848.     DW    LIT
  3849.     DW    44H
  3850.     DW    PLUS
  3851.     DW    EXIT
  3852. ;
  3853.     DB    84H        ;  PAGE
  3854.     DB    'PAG'
  3855.     DB    'E'+80H
  3856.     DW    PAD-6
  3857. PAGEE    DW    DOCOL
  3858.     DW    TPAGE
  3859.     DW    ATT
  3860.     DW    EXEC
  3861.     DW    EXIT
  3862. ;
  3863.     DB    83H        ;  PFA
  3864.     DB    'PF'
  3865.     DB    'A'+80H
  3866.     DW    PAGEE-7
  3867. PFA    DW    DOCOL
  3868.     DW    ONE
  3869.     DW    TRAV
  3870.     DW    LIT
  3871.     DW    5
  3872.     DW    PLUS
  3873.     DW    EXIT
  3874. ;
  3875.     DB    84H        ;  PICK
  3876.     DB    'PIC'
  3877.     DB    'K'+80H
  3878.     DW    PFA-6
  3879. PICK    DW    DOCOL
  3880.     DW    DUPP
  3881.     DW    ONE
  3882.     DW    LESS
  3883.     DW    AABORTQ
  3884.     DB    11H
  3885.     DB    'PICK ARGUMENT < 1'
  3886.     DW    TWOST
  3887.     DW    SPAT
  3888.     DW    PLUS
  3889.     DW    ATT
  3890.     DW    EXIT
  3891. ;
  3892.     DB    82H        ;  PP
  3893.     DB    'P'
  3894.     DB    'P'+80H
  3895.     DW    PICK-7
  3896. PP    DW    DOCOL
  3897.     DW    DUPP
  3898.     DW    LIT
  3899.     DW    0FFF0H
  3900.     DW    ANDD
  3901.     DW    AABORTQ
  3902.     DB    0AH
  3903.     DB    'OFF SCREEN'
  3904.     DW    ONE
  3905.     DW    TEXT
  3906.     DW    PAD
  3907.     DW    ONEP
  3908.     DW    SWAP
  3909.     DW    SCR
  3910.     DW    ATT
  3911.     DW    ALINE
  3912.     DW    CMOVE
  3913.     DW    UPDAT
  3914.     DW    EXIT
  3915. ;
  3916.     DB    84H        ;  PREV
  3917.     DB    'PRE'
  3918.     DB    'V'+80H
  3919.     DW    PP-5
  3920. PREV    DW    DOVAR
  3921.     DW    BUF1
  3922. ;
  3923.     DB    83H        ; PWSTORE
  3924.     DB    'PW'
  3925.     DB    '!'+80H
  3926.     DW    PREV-7
  3927. PWSTOR    DW    $+2
  3928.     POP    DX
  3929.     POP    AX
  3930.     OUT    DX,AX
  3931.     JMP    NEXT
  3932. ;
  3933.     DB    83H        ; PW@
  3934.     DB    'PW'
  3935.     DB    '@'+80H
  3936.     DW    PWSTOR-6
  3937. PWAT    DW    $+2
  3938.     POP    DX
  3939.     IN    AX,DX
  3940.     JMP    APUSH
  3941. ;
  3942.     DB    85H        ;  QUERY
  3943.     DB    'QUER'
  3944.     DB    'Y'+80H
  3945.     DW    PWAT-6
  3946. QUERY    DW    DOCOL
  3947.     DW    TIB
  3948.     DW    ATT
  3949.     DW    LIT
  3950.     DW    50H
  3951.     DW    EXPEC
  3952.     DW    ZERO
  3953.     DW    TOIN
  3954.     DW    STORE
  3955.     DW    EXIT
  3956. ;
  3957.     DB    84H        ;  QUIT
  3958.     DB    'QUI'
  3959.     DB    'T'+80H
  3960.     DW    QUERY-8
  3961. QUIT    DW    DOCOL
  3962.     DW    ZERO
  3963.     DW    BLK
  3964.     DW    STORE
  3965.     DW    LBRAC
  3966. QUIT1    DW    CR
  3967.     DW    RPSTO
  3968.     DW    QUERY
  3969.     DW    INTER
  3970.     DW    STATE
  3971.     DW    ATT
  3972.     DW    NOTT
  3973.     DW    ZBRAN
  3974.     DW    OFFSET QUIT2-$
  3975.     DW    ADOTQ
  3976.     DB    2
  3977.     DB    'OK'
  3978. QUIT2    DW    BRAN
  3979.     DW    QUIT1-$
  3980.     DW    EXIT
  3981. ;
  3982.     DB    82H        ;  R#
  3983.     DB    'R'
  3984.     DB    '#'+80H
  3985.     DW    QUIT-7
  3986. RSHARP    DW    DOUSE
  3987.     DW    4CH
  3988. ;
  3989.     DB    83H        ;  R/W
  3990.     DB    'R/'
  3991.     DB    'W'+80H
  3992.     DW    RSHARP-5
  3993. RSLW    DW    DOCOL
  3994.     DW    TRSLW
  3995.     DW    ATT
  3996.     DW    EXEC
  3997.     DW    EXIT
  3998. ;
  3999.     DB    82H        ;  R0
  4000.     DB    'R'
  4001.     DB    '0'+80H
  4002.     DW    RSLW-6
  4003. RZERO    DW    DOUSE
  4004.     DW    08
  4005. ;
  4006.     DB    82H        ;  R>
  4007.     DB    'R'
  4008.     DB    '>'+80H
  4009.     DW    RZERO-5
  4010. FROMR    DW    $+2
  4011.     MOV    AX,[BP]
  4012.     INC    BP
  4013.     INC    BP
  4014.     JMP    APUSH
  4015. ;
  4016.     DB    82H        ;  R@
  4017.     DB    'R'
  4018.     DB    '@'+80H
  4019.     DW    FROMR-5
  4020. RAT    DW    $+2
  4021.     MOV    AX,[BP]
  4022.     JMP    APUSH
  4023. ;
  4024.     DB    0C6H        ;  REPEAT
  4025.     DB    'REPEA'
  4026.     DB    'T'+80H
  4027.     DW    RAT-5
  4028. REPEA    DW    DOCOL
  4029.     DW    TOR
  4030.     DW    TOR
  4031.     DW    AGAIN
  4032.     DW    FROMR
  4033.     DW    FROMR
  4034.     DW    TWOM
  4035.     DW    THENN
  4036.     DW    EXIT
  4037. ;
  4038.     DB    84H        ;  ROLL
  4039.     DB    'ROL'
  4040.     DB    'L'+80H
  4041.     DW    REPEA-9
  4042. ROLL    DW    DOCOL
  4043.     DW    DUPP
  4044.     DW    ONE
  4045.     DW    LESS
  4046.     DW    AABORTQ
  4047.     DB    11H
  4048.     DB    'ROLL ARGUMENT < 1'
  4049.     DW    ONEP
  4050.     DW    DUPP
  4051.     DW    PICK
  4052.     DW    SWAP
  4053.     DW    TWOST
  4054.     DW    SPAT
  4055.     DW    PLUS
  4056. ROLL1    DW    DUPP
  4057.     DW    TWOM
  4058.     DW    ATT
  4059.     DW    OVER
  4060.     DW    STORE
  4061.     DW    TWOM
  4062.     DW    SPAT
  4063.     DW    OVER
  4064.     DW    ULESS
  4065.     DW    NOTT
  4066.     DW    ZBRAN
  4067.     DW    ROLL1-$
  4068.     DW    DDROP
  4069.     DW    EXIT
  4070. ;
  4071.     DB    83H        ;  ROT
  4072.     DB    'RO'
  4073.     DB    'T'+80H
  4074.     DW    ROLL-7
  4075. ROT    DW    $+2
  4076.     POP    DX
  4077.     POP    BX
  4078.     POP    AX
  4079.     PUSH    BX
  4080.     JMP    DPUSH
  4081. ;
  4082.     DB    83H        ;  RPSTORE
  4083.     DB    'RP'
  4084.     DB    '!'+80H
  4085.     DW    ROT-6
  4086. RPSTO    DW    $+2
  4087.     MOV    BX,UP
  4088.     MOV    BP,8[BX]
  4089.     JMP    NEXT
  4090. ;
  4091.     DB    83H        ;  RP@
  4092.     DB    'RP'
  4093.     DB    '@'+80H
  4094.     DW    RPSTO-6
  4095. RPAT    DW    $+2
  4096.     MOV    AX,BP
  4097.     JMP    APUSH
  4098. ;
  4099.     DB    83H        ;  RPP
  4100.     DB    'RP'
  4101.     DB    'P'+80H
  4102.     DW    RPAT-6
  4103. RPPP    DW    DOCON
  4104.     DW    RPP
  4105. ;
  4106.     DB    84H        ;  S->D
  4107.     DB    'S->'
  4108.     DB    'D'+80H
  4109.     DW    RPPP-6
  4110. STOD    DW    $+2
  4111.     POP    DX
  4112.     SUB    AX,AX
  4113.     OR    DX,DX
  4114.     JNS    STOD1
  4115.     DEC    AX
  4116. STOD1:    JMP    DPUSH
  4117. ;
  4118.     DB    82H        ;  S0
  4119.     DB    'S'
  4120.     DB    '0'+80H
  4121.     DW    STOD-7
  4122. SZERO    DW    DOCOL
  4123.     DW    SPZERO
  4124.     DW    ATT
  4125.     DW    EXIT
  4126. ;
  4127.     DB    8CH        ;  SAVE-BUFFERS
  4128.     DB    'SAVE-BUFFER'
  4129.     DB    'S'+80H
  4130.     DW    SZERO-5
  4131. SAVBUF    DW    DOCOL
  4132.     DW    NOBUF
  4133.     DW    ONEP
  4134.     DW    ZERO
  4135.     DW    ADO
  4136. SAVBUF1 DW    LIT
  4137.     DW    7FFFH
  4138.     DW    BUFFE
  4139.     DW    DROP
  4140.     DW    ALOOP
  4141.     DW    OFFSET SAVBUF1-$
  4142.     DW    EXIT
  4143. ;
  4144.     DB    83H        ;  SCR
  4145.     DB    'SC'
  4146.     DB    'R'+80H
  4147.     DW    SAVBUF-0FH
  4148. SCR    DW    DOUSE
  4149.     DW    4EH
  4150. ;
  4151.     DB    83H        ;  SEC
  4152.     DB    'SE'
  4153.     DB    'C'+80H
  4154.     DW    SCR-6
  4155. SEC    DW    DOVAR
  4156.     DW    0
  4157. ;
  4158.     DB    88H        ;  SEC-READ
  4159.     DB    'SEC-REA'
  4160.     DB    'D'+80H
  4161.     DW    SEC-6
  4162. SECRD    DW    DOCOL
  4163.     DW    LIT
  4164.     DW    201H
  4165.     DW    LIT
  4166.     DW    SECRW
  4167.     DW    EXEC
  4168.     DW    EXIT
  4169. ;
  4170. SECRW    DW    DOCOL
  4171.     DW    LIT
  4172.     DW    3
  4173.     DW    ZERO
  4174.     DW    ADO
  4175. SECRW1    DW    DUPP
  4176.     DW    USEE
  4177.     DW    ATT
  4178.     DW    TRACK
  4179.     DW    ATT
  4180.     DW    LIT
  4181.     DW    100H
  4182.     DW    STAR
  4183.     DW    SEC
  4184.     DW    ATT
  4185.     DW    PLUS
  4186.     DW    DRIVE
  4187.     DW    ATT
  4188.     DW    LIT
  4189.     DW    13H
  4190.     DW    INTCAL
  4191.     DW    DUPP
  4192.     DW    DSKERR
  4193.     DW    STORE
  4194.     DW    ZEQU
  4195.     DW    ZBRAN
  4196.     DW    OFFSET SECRW2-$
  4197.     DW    LEAVE
  4198.     DW    BRAN
  4199.     DW    OFFSET SECRW3-$
  4200. SECRW2    DW    ZERO
  4201.     DW    ZERO
  4202.     DW    ZERO
  4203.     DW    ZERO
  4204.     DW    LIT
  4205.     DW    13H
  4206.     DW    INTCAL
  4207.     DW    DROP
  4208. SECRW3    DW    ALOOP
  4209.     DW    OFFSET SECRW1-$
  4210.     DW    DROP
  4211.     DW    EXIT
  4212. ;
  4213.     DB    89H        ;  SEC-WRITE
  4214.     DB    'SEC-WRIT'
  4215.     DB    'E'+80H
  4216.     DW    SECRD-0BH
  4217. SECWT    DW    DOCOL
  4218.     DW    LIT
  4219.     DW    301H
  4220.     DW    LIT
  4221.     DW    SECRW
  4222.     DW    EXEC
  4223.     DW    EXIT
  4224. ;
  4225.     DB    87H        ;  SEC/BLK
  4226.     DB    'SEC/BL'
  4227.     DB    'K'+80H
  4228.     DW    SECWT-0CH
  4229. SPBL    DW    DOVAR
  4230.     DW    2
  4231.     DW    8
  4232.     DW    8
  4233.     DW    8
  4234.     DW    8
  4235.     DW    8
  4236.     DW    8
  4237. ;
  4238.     DB    86H        ;  SEC/TR
  4239.     DB    'SEC/T'
  4240.     DB    'R'+80H
  4241.     DW    SPBL-0AH
  4242. SPTR    DW    DOVAR
  4243.     DW    8H
  4244.     DW    1AH
  4245.     DW    1AH
  4246.     DW    34H
  4247.     DW    34H
  4248.     DW    40H
  4249.     DW    40H
  4250. ;
  4251.     DB    87H        ;  SET-DRX
  4252.     DB    'SET-DR'
  4253.     DB    'X'+80H
  4254.     DW    SPTR-9H
  4255. SETDRX    DW    DOCOL
  4256.     DW    DRDEN
  4257.     DW    DENSTY
  4258.     DW    STORE
  4259.     DW    BPDRV
  4260.     DW    OFSET
  4261.     DW    PSTOR
  4262.     DW    EXIT
  4263. ;
  4264.     DB    84H        ;  SIGN
  4265.     DB    'SIG'
  4266.     DB    'N'+80H
  4267.     DW    SETDRX-0AH
  4268. SIGN    DW    DOCOL
  4269.     DW    ZLESS
  4270.     DW    ZBRAN
  4271.     DW    OFFSET SIGN1-$
  4272.     DW    LIT
  4273.     DW    2DH
  4274.     DW    HOLD
  4275. SIGN1    DW    EXIT
  4276. ;
  4277.     DB    86H        ;  SMUDGE
  4278.     DB    'SMUDG'
  4279.     DB    'E'+80H
  4280.     DW    SIGN-7
  4281. SMUDG    DW    DOCOL
  4282.     DW    LATES
  4283.     DW    LIT
  4284.     DW    20H
  4285.     DW    TOGGL
  4286.     DW    EXIT
  4287. ;
  4288.     DB    83H        ;  SPSTORE
  4289.     DB    'SP'
  4290.     DB    '!'+80H
  4291.     DW    SMUDG-9
  4292. SPSTO    DW    $+2
  4293.     MOV    BX,UP
  4294.     MOV    SP,6[BX]
  4295.     JMP    NEXT
  4296. ;
  4297.     DB    83H        ;  SP0
  4298.     DB    'SP'
  4299.     DB    '0'+80H
  4300.     DW    SPSTO-6
  4301. SPZERO    DW    DOUSE
  4302.     DW    06
  4303. ;
  4304.     DB    83H        ;  SP@
  4305.     DB    'SP'
  4306.     DB    '@'+80H
  4307.     DW    SPZERO-6
  4308. SPAT    DW    $+2
  4309.     MOV    AX,SP
  4310.     JMP    APUSH
  4311. ;
  4312.     DB    85H        ;  SPACE
  4313.     DB    'SPAC'
  4314.     DB    'E'+80H
  4315.     DW    SPAT-6
  4316. SPACE    DW    DOCOL
  4317.     DW    BLL
  4318.     DW    EMIT
  4319.     DW    EXIT
  4320. ;
  4321.     DB    86H        ;  SPACES
  4322.     DB    'SPACE'
  4323.     DB    'S'+80H
  4324.     DW    SPACE-8
  4325. SPACS    DW    DOCOL
  4326.     DW    ZERO
  4327.     DW    MAX
  4328.     DW    QDUP
  4329.     DW    ZBRAN
  4330.     DW    OFFSET SPACS2-$
  4331.     DW    ZERO
  4332.     DW    ADO
  4333. SPACS1    DW    SPACE
  4334.     DW    ALOOP
  4335.     DW    OFFSET SPACS1-$
  4336. SPACS2    DW    EXIT
  4337. ;
  4338.     DB    85H        ;  SPBLK
  4339.     DB    'SPBL'
  4340.     DB    'K'+80H
  4341.     DW    SPACS-9
  4342. SPBLK    DW    DOCOL
  4343.     DW    DENSTY
  4344.     DW    ATT
  4345.     DW    LIT
  4346.     DW    6
  4347.     DW    MIN
  4348.     DW    TWOST
  4349.     DW    SPBL
  4350.     DW    PLUS
  4351.     DW    ATT
  4352.     DW    EXIT
  4353. ;
  4354.     DB    85H        ;  SPDRV
  4355.     DB    'SPDR'
  4356.     DB    'V'+80H
  4357.     DW    SPBLK-8
  4358. SPDRV    DW    DOCOL
  4359.     DW    BPDRV
  4360.     DW    SPBLK
  4361.     DW    STAR
  4362.     DW    EXIT
  4363. ;
  4364.     DB    83H        ;  SPT
  4365.     DB    'SP'
  4366.     DB    'T'+80H
  4367.     DW    SPDRV-8
  4368. SPT    DW    DOCOL
  4369.     DW    DENSTY
  4370.     DW    ATT
  4371.     DW    LIT
  4372.     DW    6
  4373.     DW    MIN
  4374.     DW    TWOST
  4375.     DW    SPTR
  4376.     DW    PLUS
  4377.     DW    ATT
  4378.     DW    EXIT
  4379. ;
  4380.     DB    85H        ;  STATE
  4381.     DB    'STAT'
  4382.     DB    'E'+80H
  4383.     DW    SPT-6
  4384. STATE    DW    DOUSE
  4385.     DW    50H
  4386. ;
  4387.     DB    84H        ;  SWAP
  4388.     DB    'SWA'
  4389.     DB    'P'+80H
  4390.     DW    STATE-8
  4391. SWAP    DW    $+2
  4392.     POP    DX
  4393.     POP    AX
  4394.     JMP    DPUSH
  4395. ;
  4396.     DB    87H        ;  SYSCALL
  4397.     DB    'SYSCAL'
  4398.     DB    'L'+80H
  4399.     DW    SWAP-7
  4400. SYSCALL DW    DOCOL
  4401.     DW    SWAP
  4402.     DW    LIT
  4403.     DW    100H
  4404.     DW    STAR
  4405.     DW    SWAP
  4406.     DW    ZERO
  4407.     DW    ZERO
  4408.     DW    ROT
  4409.     DW    LIT
  4410.     DW    21H
  4411.     DW    INTCAL
  4412.     DW    EXIT
  4413. ;
  4414.     DB    87H        ;  T&SCALC
  4415.     DB    'T&SCAL'
  4416.     DB    'C'+80H
  4417.     DW    SYSCALL-0AH
  4418. TSCALC    DW    DOCOL
  4419.     DW    TTSCALC
  4420.     DW    ATT
  4421.     DW    EXEC
  4422.     DW    EXIT
  4423. ;
  4424.     DB    84H        ;  TEXT
  4425.     DB    'TEX'
  4426.     DB    'T'+80H
  4427.     DW    TSCALC-0AH
  4428. TEXT    DW    DOCOL
  4429.     DW    HERE
  4430.     DW    CSLL
  4431.     DW    ONEP
  4432.     DW    BLANK
  4433.     DW    WORDD
  4434.     DW    BLL
  4435.     DW    OVER
  4436.     DW    DUPP
  4437.     DW    CAT
  4438.     DW    PLUS
  4439.     DW    ONEP
  4440.     DW    CSTOR
  4441.     DW    PAD
  4442.     DW    CSLL
  4443.     DW    ONEP
  4444.     DW    CMOVE
  4445.     DW    EXIT
  4446. ;
  4447.     DB    0C4H        ;  THEN
  4448.     DB    'THE'
  4449.     DB    'N'+80H
  4450.     DW    TEXT-7
  4451. THENN    DW    DOCOL
  4452.     DW    QCOMP
  4453.     DW    TWO
  4454.     DW    QPAIR
  4455.     DW    HERE
  4456.     DW    OVER
  4457.     DW    SUBB
  4458.     DW    SWAP
  4459.     DW    STORE
  4460.     DW    EXIT
  4461. ;
  4462.     DB    83H        ;  TIB
  4463.     DB    'TI'
  4464.     DB    'B'+80H
  4465.     DW    THENN-7
  4466. TIB    DW    DOUSE
  4467.     DW    0AH
  4468. ;
  4469.     DB    86H        ;  TOGGLE
  4470.     DB    'TOGGL'
  4471.     DB    'E'+80H
  4472.     DW    TIB-6
  4473. TOGGL    DW    $+2
  4474.     POP    AX
  4475.     POP    BX
  4476.     XOR    [BX],AL
  4477.     JMP    NEXT
  4478. ;
  4479.     DB    85H        ;  TRACK
  4480.     DB    'TRAC'
  4481.     DB    'K'+80H
  4482.     DW    TOGGL-9
  4483. TRACK    DW    DOVAR
  4484.     DW    0
  4485. ;
  4486.     DB    88H        ;  TRAVERSE
  4487.     DB    'TRAVERS'
  4488.     DB    'E'+80H
  4489.     DW    TRACK-8
  4490. TRAV    DW    DOCOL
  4491.     DW    SWAP
  4492. TRAV1    DW    OVER
  4493.     DW    PLUS
  4494.     DW    LIT
  4495.     DW    07FH
  4496.     DW    OVER
  4497.     DW    CAT
  4498.     DW    LESS
  4499.     DW    ZBRAN
  4500.     DW    OFFSET TRAV1-$
  4501.     DW    SWAP
  4502.     DW    DROP
  4503.     DW    EXIT
  4504. ;
  4505.     DB    84H        ;  TYPE
  4506.     DB    'TYP'
  4507.     DB    'E'+80H
  4508.     DW    TRAV-0BH
  4509. TYPEE    DW    DOCOL
  4510.     DW    DUPP
  4511.     DW    ZGREAT
  4512.     DW    ZBRAN
  4513.     DW    OFFSET TYPE2-$
  4514.     DW    OVER
  4515.     DW    PLUS
  4516.     DW    SWAP
  4517.     DW    ADO
  4518. TYPE1    DW    IDO
  4519.     DW    CAT
  4520.     DW    EMIT
  4521.     DW    ONE
  4522.     DW    AUPLOOP
  4523.     DW    OFFSET TYPE1-$
  4524.     DW    BRAN
  4525.     DW    OFFSET TYPE3-$
  4526. TYPE2    DW    DDROP
  4527. TYPE3    DW    EXIT
  4528. ;
  4529.     DB    82H        ;  U*
  4530.     DB    'U'
  4531.     DB    '*'+80H
  4532.     DW    TYPEE-7
  4533. USTAR    DW    $+2
  4534.     POP    AX
  4535.     POP    BX
  4536.     MUL    BX
  4537.     XCHG    AX,DX
  4538.     JMP    DPUSH
  4539. ;
  4540.     DB    82H        ;  U.
  4541.     DB    'U'
  4542.     DB    '.'+80H
  4543.     DW    USTAR-5
  4544. UDOT    DW    DOCOL
  4545.     DW    ZERO
  4546.     DW    DDOT
  4547.     DW    EXIT
  4548. ;
  4549.     DB    85H        ;  U/MOD
  4550.     DB    'U/MO'
  4551.     DB    'D'+80H
  4552.     DW    UDOT-5
  4553. USLM    DW    $+2
  4554.     POP    BX
  4555.     POP    DX
  4556.     POP    AX
  4557.     DIV    BX
  4558.     JMP    DPUSH
  4559. ;
  4560.     DB    82H        ;  U<
  4561.     DB    'U'
  4562.     DB    '<'+80H
  4563.     DW    USLM-8
  4564. ULESS    DW    DOCOL
  4565.     DW    ZERO
  4566.     DW    SWAP
  4567.     DW    ZERO
  4568.     DW    DLESS
  4569.     DW    EXIT
  4570. ;
  4571.     DB    0C5H        ;  UNTIL
  4572.     DB    'UNTI'
  4573.     DB    'L'+80H
  4574.     DW    ULESS-5
  4575. UNTIL    DW    DOCOL
  4576.     DW    ONE
  4577.     DW    QPAIR
  4578.     DW    COMP
  4579.     DW    ZBRAN
  4580.     DW    HERE
  4581.     DW    SUBB
  4582.     DW    COMMA
  4583.     DW    EXIT
  4584. ;
  4585.     DB    82H        ;  UP
  4586.     DB    'U'
  4587.     DB    'P'+80H
  4588.     DW    UNTIL-8
  4589. UPP    DW    DOCON
  4590.     DW    UP
  4591. ;
  4592.     DB    86H        ;  UPDATE
  4593.     DB    'UPDAT'
  4594.     DB    'E'+80H
  4595.     DW    UPP-5
  4596. UPDAT    DW    DOCOL
  4597.     DW    PREV
  4598.     DW    ATT
  4599.     DW    ATT
  4600.     DW    LIT
  4601.     DW    8000H
  4602.     DW    ORR
  4603.     DW    PREV
  4604.     DW    ATT
  4605.     DW    STORE
  4606.     DW    EXIT
  4607. ;
  4608.     DB    83H        ;  USE
  4609.     DB    'US'
  4610.     DB    'E'+80H
  4611.     DW    UPDAT-9
  4612. USEE    DW    DOVAR
  4613.     DW    BUF1
  4614. ;
  4615.     DB    84H        ;  USER
  4616.     DB    'USE'
  4617.     DB    'R'+80H
  4618.     DW    USEE-6
  4619. USER    DW    DOCOL
  4620.     DW    CON
  4621.     DW    ASCODE
  4622. DOUSE:    INC    DX
  4623.     MOV    BX,DX
  4624.     MOV    BL,[BX]
  4625.     SUB    BH,BH
  4626.     MOV    DI,UP
  4627.     LEA    AX,[BX+DI]
  4628.     JMP    APUSH
  4629. ;
  4630.     DB    88H        ;  VARIABLE
  4631.     DB    'VARIABL'
  4632.     DB    'E'+80H
  4633.     DW    USER-7
  4634. VAR    DW    DOCOL
  4635.     DW    CREATE
  4636.     DW    TWO
  4637.     DW    ALLOT
  4638.     DW    EXIT
  4639. ;
  4640.     DB    88H        ;  VOC-LINK
  4641.     DB    'VOC-LIN'
  4642.     DB    'K'+80H
  4643.     DW    VAR-0BH
  4644. VOCL    DW    DOUSE
  4645.     DW    14H
  4646. ;
  4647.     DB    8AH        ;  VOCABULARY
  4648.     DB    'VOCABULAR'
  4649.     DB    'Y'+80H
  4650.     DW    VOCL-0BH
  4651. VOC    DW    DOCOL
  4652.     DW    TVOCAB
  4653.     DW    ATT
  4654.     DW    EXEC
  4655.     DW    EXIT
  4656. ;
  4657.     DB    87H        ;  WARNING
  4658.     DB    'WARNIN'
  4659.     DB    'G'+80H
  4660.     DW    VOC-0DH
  4661. WARN    DW    DOUSE
  4662.     DW    0EH
  4663. ;
  4664.     DB    85H        ;  WHERE
  4665.     DB    'WHER'
  4666.     DB    'E'+80H
  4667.     DW    WARN-0AH
  4668. WHERE    DW    DOCOL
  4669.     DW    BLK
  4670.     DW    ATT
  4671.     DW    ZBRAN
  4672.     DW    WHERE1-$
  4673.     DW    BLK
  4674.     DW    ATT
  4675.     DW    DUPP
  4676.     DW    SCR
  4677.     DW    STORE
  4678.     DW    CR
  4679.     DW    CR
  4680.     DW    ADOTQ
  4681.     DB    5
  4682.     DB    'SCR# '
  4683.     DW    DUPP
  4684.     DW    DOT
  4685.     DW    TOIN
  4686.     DW    ATT
  4687.     DW    LIT
  4688.     DW    3FFH
  4689.     DW    MIN
  4690.     DW    CSLL
  4691.     DW    SLMOD
  4692.     DW    DUPP
  4693.     DW    ADOTQ
  4694.     DB    6
  4695.     DB    'LINE# '
  4696.     DW    DOT
  4697.     DW    CSLL
  4698.     DW    STAR
  4699.     DW    ROT
  4700.     DW    BLOCK
  4701.     DW    PLUS
  4702.     DW    CR
  4703.     DW    CR
  4704.     DW    CSLL
  4705.     DW    DTRAI
  4706.     DW    TYPEE
  4707.     DW    TOIN
  4708.     DW    ATT
  4709.     DW    LIT
  4710.     DW    3FFH
  4711.     DW    GREAT
  4712.     DW    PLUS
  4713.     DW    BRAN
  4714.     DW    WHERE2-$
  4715. WHERE1    DW    TOIN
  4716.     DW    ATT
  4717. WHERE2    DW    CR
  4718.     DW    HERE
  4719.     DW    CAT
  4720.     DW    DUPP
  4721.     DW    TOR
  4722.     DW    SUBB
  4723.     DW    HERE
  4724.     DW    RAT
  4725.     DW    PLUS
  4726.     DW    ONEP
  4727.     DW    CAT
  4728.     DW    LIT
  4729.     DW    20H
  4730.     DW    EQUAL
  4731.     DW    ZBRAN
  4732.     DW    WHERE3-$
  4733.     DW    ONEM
  4734. WHERE3    DW    SPACS
  4735.     DW    FROMR
  4736.     DW    ZERO
  4737.     DW    ADO
  4738. WHERE4    DW    LIT
  4739.     DW    5EH
  4740.     DW    EMIT
  4741.     DW    ALOOP
  4742.     DW    WHERE4-$
  4743.     DW    EXIT
  4744. ;
  4745.     DB    0C5H        ;  WHILE
  4746.     DB    'WHIL'
  4747.     DB    'E'+80H
  4748.     DW    WHERE-8
  4749. WHILE    DW    DOCOL
  4750.     DW    IFF
  4751.     DW    TWOP
  4752.     DW    EXIT
  4753. ;
  4754.     DB    85H        ;  WIDTH
  4755.     DB    'WIDT'
  4756.     DB    'H'+80H
  4757.     DW    WHILE-8
  4758. WIDTHH    DW    DOUSE
  4759.     DW    0CH
  4760. ;
  4761.     DB    84H        ;  WORD
  4762.     DB    'WOR'
  4763.     DB    'D'+80H
  4764.     DW    WIDTHH-8
  4765. WORDD    DW    DOCOL
  4766.     DW    TWORD
  4767.     DW    ATT
  4768.     DW    EXEC
  4769.     DW    EXIT
  4770. ;
  4771.     DB    0C0H        ;  X   (NULL)
  4772.     DB    80H
  4773.     DW    WORDD-7
  4774. NULL    DW    DOCOL
  4775.     DW    BLK
  4776.     DW    ATT
  4777.     DW    ZBRAN
  4778.     DW    OFFSET NULL1-$
  4779.     DW    STATE
  4780.     DW    ATT
  4781.     DW    QSTREAM
  4782. NULL1    DW    FROMR
  4783.     DW    DROP
  4784.     DW    EXIT
  4785. ;
  4786.     DB    83H        ;  XOR
  4787.     DB    'XO'
  4788.     DB    'R'+80H
  4789.     DW    NULL-4
  4790. XORR    DW    $+2
  4791.     POP    AX
  4792.     POP    BX
  4793.     XOR    AX,BX
  4794.     JMP    APUSH
  4795. ;
  4796.     DB    0C1H        ;  [
  4797.     DB    '['+80H
  4798.     DW    XORR-6
  4799. LBRAC    DW    DOCOL
  4800.     DW    ZERO
  4801.     DW    STATE
  4802.     DW    STORE
  4803.     DW    EXIT
  4804. ;
  4805.     DB    0C9H        ;  [COMPILE]
  4806.     DB    '[COMPILE'
  4807.     DB    ']'+80H
  4808.     DW    LBRAC-4
  4809. BCOMP    DW    DOCOL
  4810.     DW    QCOMP
  4811.     DW    DFIND
  4812.     DW    NOTT
  4813.     DW    AABORTQ
  4814.     DB    9
  4815.     DB    'NOT FOUND'
  4816.     DW    DROP
  4817.     DW    CFA
  4818.     DW    COMMA
  4819.     DW    EXIT
  4820. ;
  4821.     DB    81H        ;  ]
  4822.     DB    ']'+80H
  4823.     DW    BCOMP-0CH
  4824. RBRAC    DW    DOCOL
  4825.     DW    LIT
  4826.     DW    0C0H
  4827.     DW    STATE
  4828.     DW    STORE
  4829.     DW    EXIT
  4830. ;
  4831.     FSEG    ENDS
  4832. ;
  4833.     END    ORIG
  4834. ;
  4835.